0

私は ajax ポーリングを初めて使用し、データを継続的にフェッチするように実装しましたが、問題はメモリ使用量と CPU 使用率が継続的に増加し続け、最後にブラウザがクラッシュすることです。これは、データを継続的に取得するために使用している ajax 呼び出しです。

$(document).ready(function () {

make_call();
function make_call() {
$.ajax({
url: "url",
              accepts: "application/json",
              cache: false,
              success: function (result) { // Some code here },
complete: make_call
});
}
}

他の選択肢はありますか、それとも何か間違っていますか。提案または解決策を提供してください。前もって感謝します 。

4

1 に答える 1

0

コードは、前のリクエストが完了すると同時に新しいリクエストを初期化します (完了はエラーまたは成功のいずれかです)。サーバーとクライアントの両方の負荷を軽減するという利点があるため、新しいデータを要求する前に少し遅延を設けたいと思うでしょう。

$.ajax({
  // ...
  complete: function() {
    setTimeout(make_call, 5000);
  }
});

上記のコードは、次のリクエストを行う前に 5 秒間待機します。「連続」のニーズに合わせて値を調整します。

于 2013-04-04T15:28:54.543 に答える