jfriend00の答えを補完するために、私はあなたが望むことをするために使用するよりも別の解決策を探すことを提案しますsetInterval
。
setInterval
何らかの理由で有害であると見なされます:
setInterval
エラーを無視します
setInterval
ネットワーク遅延を気にしない
setInterval
実行を保証するものではありません
詳細については、http://zetafleet.com/blog/why-i-consider-setinterval-harmfulを参照してください。
サーバーの更新をチェックするためにこの手法を使用する以外に選択肢がない場合は、次のようなコードの方が効率的です。
var timer = null,
delay = 1000;
function checkAndDisplayNewResults() {
// do some work
// when the work is finished, set a timer to call again the function
timer = setTimeout( checkAndDisplayNewResults, delay );
// the term "when the work is finished" means in this case, when your AJAX request is finished
// and not simply at the end of the checkAndDisplayNewResults function
}
// call the function immediately
checkAndDisplayNewResults();
また、Josephが言ったように、この手法がアプリケーションにもたらす可能性のある帯域幅のオーバーヘッドに注意してください。
いずれにせよ、他の人が指摘しているように、これを行うには他のより良い方法があります:WebSocket、サーバー送信イベント、HTTPポーリング、AJAXプッシュ、長時間ロードiframeなど...Webに関するこの記事のイントロをチェックできますSocketshttp ://www.html5rocks.com/en/tutorials/websockets/basics/およびWebSocketsの使用方法について詳しくはこちらをご覧ください