nhanh-pure-function 1.3.9 → 1.3.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/Utility/Utility.d.ts +11 -0
- package/lib/Utility/Utility.js +46 -9
- package/package.json +1 -1
package/lib/Utility/Utility.d.ts
CHANGED
|
@@ -238,3 +238,14 @@ export function _GetTargetByPath(model: any, path: string): any;
|
|
|
238
238
|
* @returns {*} - 返回更新后的模型对象中的值
|
|
239
239
|
*/
|
|
240
240
|
export function _UpdateTargetByPath(model: any, path: string, value: any): any;
|
|
241
|
+
|
|
242
|
+
/**
|
|
243
|
+
* 使用 XMLHttpRequest 检查指定 URL 的连接状态
|
|
244
|
+
*
|
|
245
|
+
* 此函数通过发送一个 HEAD 请求来检查给定 URL 是否可访问 HEAD 请求仅请求文档头部信息,
|
|
246
|
+
* 而不是整个页面,因此比 GET 或 POST 请求更快此方法常用于检查 URL 是否有效,以及服务器的响应时间等
|
|
247
|
+
*
|
|
248
|
+
* @param {string} url - 需要检查连接的 URL 地址
|
|
249
|
+
* @returns {Promise} - 返回一个 Promise 对象,该对象在连接成功时解析,在连接失败时拒绝
|
|
250
|
+
*/
|
|
251
|
+
export function _CheckConnectionWithXHR(url: string): Promise<any>;
|
package/lib/Utility/Utility.js
CHANGED
|
@@ -193,15 +193,28 @@ export function _GetHrefName(href, defaultName = "file") {
|
|
|
193
193
|
* @param {string} href - 文件路径
|
|
194
194
|
* @param {string} [fileName] - 导出文件名
|
|
195
195
|
*/
|
|
196
|
-
export function _DownloadFile(href, fileName) {
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
196
|
+
export async function _DownloadFile(href, fileName) {
|
|
197
|
+
try {
|
|
198
|
+
const response = await fetch(href); // 获取文件
|
|
199
|
+
if (!response.ok) throw new Error("文件下载失败");
|
|
200
|
+
|
|
201
|
+
const blob = await response.blob(); // 将响应转换为 Blob 对象
|
|
202
|
+
const url = URL.createObjectURL(blob); // 创建文件 URL
|
|
203
|
+
|
|
204
|
+
const a = document.createElement("a");
|
|
205
|
+
a.href = url;
|
|
206
|
+
a.download = fileName || _GetHrefName(href, "image");
|
|
207
|
+
|
|
208
|
+
// 临时将 a 标签添加到 DOM,然后触发点击事件,最后移除
|
|
209
|
+
document.body.appendChild(a);
|
|
210
|
+
a.click();
|
|
211
|
+
document.body.removeChild(a);
|
|
212
|
+
|
|
213
|
+
// 释放 URL 对象
|
|
214
|
+
URL.revokeObjectURL(url);
|
|
215
|
+
} catch (error) {
|
|
216
|
+
console.error("下载文件时发生错误:", error);
|
|
217
|
+
}
|
|
205
218
|
}
|
|
206
219
|
|
|
207
220
|
/**
|
|
@@ -498,3 +511,27 @@ export function _UpdateTargetByPath(model, path, value) {
|
|
|
498
511
|
return prev[curr];
|
|
499
512
|
}, model);
|
|
500
513
|
}
|
|
514
|
+
|
|
515
|
+
/**
|
|
516
|
+
* 使用 XMLHttpRequest 检查指定 URL 的连接状态
|
|
517
|
+
*
|
|
518
|
+
* 此函数通过发送一个 HEAD 请求来检查给定 URL 是否可访问 HEAD 请求仅请求文档头部信息,
|
|
519
|
+
* 而不是整个页面,因此比 GET 或 POST 请求更快此方法常用于检查 URL 是否有效,以及服务器的响应时间等
|
|
520
|
+
*
|
|
521
|
+
* @param {string} url - 需要检查连接的 URL 地址
|
|
522
|
+
* @returns {Promise} - 返回一个 Promise 对象,该对象在连接成功时解析,在连接失败时拒绝
|
|
523
|
+
*/
|
|
524
|
+
export function _CheckConnectionWithXHR(url) {
|
|
525
|
+
return new Promise((resolve, reject) => {
|
|
526
|
+
const xhr = new XMLHttpRequest();
|
|
527
|
+
xhr.open("HEAD", url, true); // 发送 HEAD 请求
|
|
528
|
+
xhr.onreadystatechange = function () {
|
|
529
|
+
if (xhr.readyState === XMLHttpRequest.DONE) {
|
|
530
|
+
if (xhr.status >= 200 && xhr.status < 300) resolve();
|
|
531
|
+
else reject(xhr);
|
|
532
|
+
}
|
|
533
|
+
};
|
|
534
|
+
xhr.onerror = reject;
|
|
535
|
+
xhr.send();
|
|
536
|
+
});
|
|
537
|
+
}
|