JavaScript タイムアウトの一時停止と再開
JavaScript で setTimeout を使用する場合、タイムアウトを一時停止および再開できる機能は、さまざまなシナリオで役立ちます。遅延が設定されているが、実行前または非同期操作の完了を待つために一時停止が必要な状況が発生する可能性があります。
カスタム ラッパーを使用したタイムアウトの一時停止と再開
現在の時刻を保存して残りの継続時間を計算する代わりに、一時停止と再開の機能を提供する window.setTimeout の周囲にカスタム ラッパーを作成することができます。このアプローチは、より洗練された再利用可能なソリューションを提供します。
var Timer = function(callback, delay) { var timerId, start, remaining = delay; this.pause = function() { window.clearTimeout(timerId); timerId = null; remaining -= Date.now() - start; }; this.resume = function() { if (timerId) { return; } start = Date.now(); timerId = window.setTimeout(callback, remaining); }; this.resume(); };
このカスタム Timer クラスを使用すると、必要に応じてタイムアウトを一時停止したり再開したりできます。これを使用するには、コールバック関数と遅延を使用して初期化し、必要に応じてポーズ() メソッドまたは再開() メソッドを呼び出します。
例:
var timer = new Timer(function() { alert("Done!"); }, 1000); timer.pause(); // Perform asynchronous operations or other tasks timer.resume();
注: このカスタム ラッパーは、一時停止されたタイマーの残り時間を取得する方法を提供しません。あるいは、残り時間を追跡し、getTimeRemaining() メソッドを提供する、より包括的なラッパーを実装することもできます。
以上がJavaScript でタイムアウトを効率的に一時停止および再開するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。