JavaScriptでsetInterval(fname, 10000);
を使って10秒ごとに関数を呼び出しています。何かのイベントで呼び出しを停止することは可能ですか?
繰り返し行われるデータの更新をユーザーが停止できるようにしたいのです。
setInterval()
はインターバルIDを返し、それをclearInterval()
に渡すことができます。
var refreshIntervalId = setInterval(fname, 10000);
/* later */
clearInterval(refreshIntervalId);
setInterval()](https://developer.mozilla.org/en/DOM/window.setInterval)と[
clearInterval()`](https://developer.mozilla.org/en/DOM/window.clearInterval)のドキュメントを参照してください。
setIntervalの戻り値を変数に設定しておけば、
clearInterval`で停止させることができます。
var myTimer = setInterval(...);
clearInterval(myTimer);
新しい変数を設定して、実行するたびに++(1つカウントアップ)ずつインクリメントさせることができます。それから、条件文を使って終了させています。
var intervalId = null;
var varCounter = 0;
var varName = function(){
if(varCounter <= 10) {
varCounter++;
/* your code goes here */
} else {
clearInterval(intervalId);
}
};
$(document).ready(function(){
intervalId = setInterval(varName, 10000);
});
お役に立てれば幸いですし、正しいと思います。