ホームページ >ウェブフロントエンド >jsチュートリアル >JavaScript で setTimeout() を一時停止および再開するにはどうすればよいですか?

JavaScript で setTimeout() を一時停止および再開するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-23 00:55:03329ブラウズ

How to Pause and Resume setTimeout() in JavaScript?

JavaScript での setTimeout() の一時停止と再開

JavaScript では、setTimeout() を使用して、指定された時間の後に実行される関数をスケジュールできます。遅れ。ただし、タイムアウトの実行を一時停止または再開する必要があるシナリオが発生する場合があります。

setTimeout() の一時停止と再開

実行中のタイムアウトを一時停止するには、次のようにします。 window.clearTimeout() 関数を使用できます。クリアするタイムアウトの ID を引数として受け取ります。一時停止した後、timer.resume() メソッドを使用してタイムアウトを再開できます。

一時停止/再開機能を備えたカスタム タイマー

別のアプローチは、カスタム タイマーを作成することです。一時停止メソッドと再開メソッドを備えたタイマー オブジェクト。これにより、タイムアウトをより直接的に制御できるようになります。そのようなタイマーの例を次に示します。

<code class="javascript">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();
};</code>

setTimeout() で残り時間を取得する

残念ながら、残り時間を取得する組み込みの方法はありません。 setTimeout()。ただし、上記の方法を使用して、開始時間を手動で保存し、タイマーを一時停止するときに残り時間を計算することもできます。

カスタム タイマー オブジェクトで setTimeout() をラップするか、手動の時間計算方法を使用することにより、を使用すると、JavaScript でタイムアウトの一時停止と再開の機能を実現できます。

以上がJavaScript で setTimeout() を一時停止および再開するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。