将XMLHttpRequest中的两个HTML5 Progress Bar更新为:
for (var i = 0; i < times.value; i++) {
xhr.open("POST", uri, false);
xhr.send(payload);
restSendBar.value += 100 / times.value;
console.log(i + "th times");
}
和
xhr.onreadystatechange = function() {
if (xhr.readyState === 4 && xhr.status === 200) {
restRxBar.value += 100 / times.value;
}
};
在Firefox中,进度条会在执行for循环时更新。在Chrome中,for循环完成后会更新进度条。
这是更新进度条的正确方法吗?
这是Chrome中的错误吗?
阿伦
答案 0 :(得分:0)
Chrome可能会优先考虑方法调用,而不是Firefox。尝试使用setTimeout
:
setTimeout(function() {
// Update progress bar here
restRxBar.value += 100 / times.value;
}, 0);