【发布时间】:2023-03-11 21:21:01
【问题描述】:
我有一个简单的表单,提交时通过 ajax 请求进行验证。如果表单检查正常,则发出另一个 ajax 请求来处理最初提交的数据。
我想为此建立一个进度条。我发现将此代码添加到每个 ajax 请求会分别返回每个调用的进度。这使得进度条加载到 100%,两次,很快。
是否有可能例如两个 ajax 请求每个填充进度条的 50%?...所以 ajax 请求 1 将填充到 50%,第二个将从 51% 填充到 100%?还是疯了?
或者如果三个 ajax 调用各占总百分比的 33.33%?
我想我们更多地关注完成的阶段以及进度。
有什么想法可以在不过多伪装的情况下实现这一点吗?
var xhr = new window.XMLHttpRequest();
//Upload progress
xhr.upload.addEventListener("progress", function (evt) {
if (evt.lengthComputable) {
var percentComplete = evt.loaded / evt.total;
//Do something with upload progress
console.log('percent uploaded: ' + (percentComplete * 100));
}
}, false);
//Download progress
xhr.addEventListener("progress", function (evt) {
if (evt.lengthComputable) {
var percentComplete = evt.loaded / evt.total;
//Do something with download progress
console.log('percent downloaded: ' + (percentComplete * 100));
}
}, false);
return xhr;
【问题讨论】:
标签: javascript jquery ajax xmlhttprequest