0

後に ajax 呼び出しを使用した for ループ、遅い for ループ?

  for (var x = this.from; x < this.emax; x++) { this.list.append('<li></li>'); }


  jQuery.ajax({
  .....

どういうわけか、for ループと同時に ajax リクエストを開始します。そのため、クロムは一瞬窒息します。私はそれを望んでいません、それは修正できますか?

4

2 に答える 2

1

私が見たところ、ブラウザは通常、スクリプトが現在のイベントの処理を完了するまでページを更新しません。つまり、新しい LI が実際にレンダリングされる前に Ajax リクエストが開始され、両方がほぼ同時に発生するように見えます。

そのための 1 つの回避策は、最小限のタイムアウト値で.ajax呼び出しを 内に置くことです。setTimeout0 ミリ秒のタイムアウトで十分かもしれません。そうでない場合は、1になります。ポイントは、呼び出しをキューに入れて、DOM の変更が発生する前に適用されるようにすることです。

(そうは言っても、そもそも空の LI を大量に追加するのはなぜですか? それらが Ajax 要求が取得するもののプレースホルダーである場合は、成功のコールバックにそれらを追加させることを検討してください。ちょっと考えてみてください。)

于 2012-10-10T13:58:35.037 に答える
1

これはうまくいくかもしれません:

for (var x = this.from; x < this.emax; x++) { this.list.append('<li>
</li>').slow(200,function() {
     jQuery.ajax({

      .........
}); }
于 2012-10-10T14:01:23.043 に答える