0

XMLHttpRequest 内の 2 つの HTML5 プログレス バーを次のように更新します。

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 のバグですか?

アルン

4

1 に答える 1

0

Chrome がメソッド呼び出しの優先順位を Firefox とは異なる方法で設定している可能性があります。次を使用して、進行状況バーを「帯域外」で更新してみてくださいsetTimeout

setTimeout(function() {
  // Update progress bar here
  restRxBar.value += 100 / times.value;
}, 0);
于 2013-02-28T17:55:21.923 に答える