javascript - 多个文件下载进度指示器
问题描述
所以我的问题是我异步下载了多个文件 blob,我需要为每个项目提供一个专用的进度条,但是下面的代码仅适用于最后一个进度条。有什么好的方法吗?这是我的代码:
const masterXHR = new XMLHttpRequest();
masterXHR.open('GET', res.url, true);
masterXHR.setRequestHeader('Authorization', `Bearer ${authCookie}`);
masterXHR.setRequestHeader('X-XSRF-TOKEN', xsrfCookie);
masterXHR.responseType = 'blob';
masterXHR.onloadstart = () => { Notifs.downloadNotif(' is downloaded'); };
masterXHR.onprogress = (e) => {
const selector = [...document.querySelectorAll('#percentage')];
const lastIndicator = selector[selector.length - 1];
lastIndicator.innerText = `${Math.floor((e.loaded / e.total) * 100)}%`;
}
masterXHR.onload = () => { download(masterXHR.response, fileName); };
masterXHR.send();
快速 desc:它搜索所有<p>
具有 id的存在#percentage
并开始覆盖 nodeList 的最后一项的 innerText。它还会冻结所有以前的计数器,这就是问题所在。
解决方案
元素 ID 不应具有相同的名称。将这些 id 命名为:percentage1、percentage2、percentage3...
推荐阅读
- wpf - 如何以可以覆盖全局样式的方式声明样式?
- python - Numpy 使用切片修改多个值的二维数组
- gremlin - 如何在 gremlin 本地对子查询中的元素进行排序?
- python - 包含查找 Pandas
- apache-spark - 使用 scala 正确加入 apache spark 数据帧,避免空值
- java - 使用 JSON 格式 java 获取字符串的特定部分
- delphi - Delphi JSONValue 获取值
- reactjs - 使用反应路由器 v4 传递参数并在 url 中使用它们
- c++ - 读取文件时将数据保存到指针数组
- python - 两个编译的 python 程序没有通过管道正确连接