0

さて、私はある種のJavascriptを使用して、変更するファイルを常に更新し、node.jsやsocket.ioを使用せずにリアルタイムで更新を取得しようとしています。これは、ファイルを追加する機能がないためです。私のサーバー。

私はこれに対抗するために次のコードを使用してきましたが、これを行うのはばかげた方法だと思います。

<script type="text/javascript">
var st = setInterval(function(){
    $.get("api.php",{user:1});
}, 1000);
</script>

それはそれの単なる合計です、私はそれが停止してあなたがまだそこにいるかどうか尋ねる前に25の要求の制限があります。

サーバー側のアドオンなしでこれを行うためのより良い方法はありますか?

4

1 に答える 1

0

ファイルが単調に増加していると仮定すると、サーバーに差を求めることができます。オフセット 0 から開始し、返されたファイルの長さを取得し、それを実行中の長さに追加してから、その位置から開始するファイルを要求します。この方法では、ファイル全体を 1 秒に 1 回転送しようとするのではなく、それらを一緒に追加すると完全なファイルになる個別のチャンクだけを転送しようとします。

また、setInterval長さがわからないものは好きではありません。私は自動更新を好みますsetTimeout(つまり、現在の関数を、必要なことをすべて実行した後にタイムアウトに設定します)。このようにして、リクエストの開始間ではなく、リクエスト間に 1 秒の遅延を設けることができます (遅延が大きくなると、重複し始める可能性があります)。

var getFromApi = function() {
  $.get("api.php", { user: 1 }, function() {
    setInterval(getFromApi, 1000);
  };
};
getFromApi();
于 2013-01-04T04:36:57.177 に答える