実行時にsetIntervalで設定された関数の呼び出しの間隔を変更する方法はありますか?それを削除して(clearInterval)、別の値で再度元に戻す以外に方法はありますか?
質問する
12429 次
2 に答える
14
代わりに setTimeout を使用してください。さらに、これは非同期 JS のノンブロッキング メソッドです。
var interval = 1000;
function callback() {
console.log( 'callback!' );
interval -= 100; // actually this will kill your browser when goes to 0, but shows the idea
setTimeout( callback, interval );
}
setTimeout( callback, interval );
キューのサイズが限られているため、場合によっては を使用しないでくださいsetInterval
(多くのsetInterval
+ 長いコールバック。通常はタイムアウトよりも長くなります)。一部のコールバックはブラウザによって削除され、実行されません。実行のみsetTimeout
を保証します。
于 2013-02-26T14:05:14.203 に答える
2
いいえ; 間隔を削除して再度追加するのは、使用した場合の方法ですsetInterval()
。
setTimeout()
ただし、最後にさまざまな遅延を指定して繰り返し呼び出すことで、さまざまなタイムアウトの同じ目標を達成できます。
好奇心から、間隔を変更するために何をしていますか? もしかrequestAnimationFrame()
したらもっと相応しいかも?
于 2013-02-26T14:03:43.743 に答える