在XMLHTTPRequest.onreadystatechange中更新HTML5 Progress Bar

时间:2013-02-27 19:40:02

标签: html5 google-chrome firefox xmlhttprequest progress-bar

将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中的错误吗?

阿伦

1 个答案:

答案 0 :(得分:0)

Chrome可能会优先考虑方法调用,而不是Firefox。尝试使用setTimeout

更新“带外”进度条
setTimeout(function() {
  // Update progress bar here
  restRxBar.value += 100 / times.value;
}, 0);