js异步加载文件

 
更多

js 异步加载文件。

/**
 * 定义一个异步函数来加载文件列表
 * @param {string[]} fileUrlList - 文件URL列表
 * @param {function} onCompleteCallback - 所有文件加载完成后的回调函数
 * @param {function} onProgressCallback - 加载进度更新的回调函数 (可选)
 * @returns {Promise<void>}
 */
async function loadFiles(fileUrlList, onCompleteCallback, onProgressCallback) {
    let loadedFiles = 0; // 已加载的文件数
    const totalFiles = fileUrlList.length;

    for (let i = 0; i < totalFiles; i++) {
        const url = fileUrlList[i];
        try {
            const response = await fetch(url); // 传入的URL
            if (!response.ok) {
                throw new Error(`HTTP 错误!状态码:${response.status} - URL: ${url}`);
            }
            loadedFiles++; // 成功加载文件后计数

            // 调用进度回调函数更新进度条
            if (onProgressCallback) {
                onProgressCallback(loadedFiles, totalFiles);
            }
            //console.log(`文件 ${i + 1} 下载成功: ${url}`);
        } catch (error) {
            console.error(`文件 ${i + 1} 加载失败:`, error);
        }
    }

    // 所有文件加载完成后,调用完成回调函数
    if (onCompleteCallback) {
        onCompleteCallback();
    }
}

使用:

const fileUrls = ["https://www.phpernote.com/logo.gif"];

// 更新进度条的函数
function updateProgress(loaded, total) {
    const progress = (loaded / total) * 100;
    console.log(`加载进度:${progress.toFixed(2)}%`);
}

// 所有文件加载完成后的回调
function allFilesLoaded() {
    console.log("所有文件加载完成!");
}

// 调用loadFiles,传入文件列表、完成回调和进度回调
loadFiles(fileUrls, allFilesLoaded, updateProgress);
打赏

本文固定链接: https://www.cxy163.net/archives/2925 | 绝缘体

该日志由 绝缘体.. 于 2024年09月18日 发表在 未分类 分类下, 你可以发表评论,并在保留原文地址及作者的情况下引用到你的网站或博客。
原创文章转载请注明: js异步加载文件 | 绝缘体
关键字: , , , ,

js异步加载文件:等您坐沙发呢!

发表评论


快捷键:Ctrl+Enter