setInterval と clearInterval を使用したスケジュールされた関数の管理
次のコード部分を考えてみましょう。
function doKeyDown(event) { switch (event.keyCode) { case 32: /* Space bar was pressed */ if (x == 4) { setInterval(drawAll, 20); } else { setInterval(drawAll, 20); x += dx; } break; } }
目標は次のとおりです。繰り返し呼び出すループを作成せずに、drawAll 関数を 1 回だけ呼び出します。 it.
clearInterval を使用して定期的な実行を停止する
setInterval は、指定された関数を定期的に呼び出す繰り返しタイマーを確立します。実行を停止するには、clearInterval を利用できます。その仕組みは次のとおりです。
var handle = setInterval(drawAll, 20); // When you want to stop it: clearInterval(handle); handle = 0; // Indication of an uncleared interval
ブラウザでは、ハンドルはゼロ以外の数値であることが保証されています。したがって、ハンドル = 0 の設定は、間隔がクリアされたことを示す便利なフラグとして機能します。
ワンタイム関数呼び出しのスケジュール
目的が次の場合関数を 1 回だけ実行する場合は、代わりに setTimeout の使用を検討してください。この関数は、指定された時間間隔の後に関数が呼び出されるようにスケジュールしますが、その後は関数の起動を継続しません。また、潜在的なキャンセルのハンドルも返します。
setTimeout(drawAll, 20);
以上が`setInterval` で呼び出された関数が 1 回だけ実行されるようにするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。