ホームページ  >  記事  >  ウェブフロントエンド  >  JavaScript でタイムアウト実行を制御し、残り時間を判断するにはどうすればよいですか?

JavaScript でタイムアウト実行を制御し、残り時間を判断するにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-10-22 20:47:12286ブラウズ

How Can I Control Timeout Execution and Determine Remaining Time in JavaScript?

JavaScript でのタイムアウトの一時停止と再開

JavaScript を使用する場合、タイムアウトなどの非同期操作のフローを制御することが必要になる場合があります。ここでは、アクティブなタイムアウトを一時停止および再開する方法、および現在のタイムアウトの残り時間を取得する方法を検討します。

タイムアウトの一時停止と再開

タイムアウトを一時停止するには、ラッパーを利用できます。 window.setTimeout 呼び出しをインターセプトし、必要な機能を提供する関数。ラッパー関数 Timer は、コールバック関数と遅延を引数として受け取り、一時停止、再開、残り時間の追跡を処理します。

<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>

このラッパーを使用するには、Timer オブジェクトをインスタンス化し、そのオブジェクトを呼び出します。

残り時間の取得

現在のタイムアウトの残り時間を取得するには、1 つの方法は、タイムアウトが設定されたときに開始時間を保存し、一時停止時に現在時刻と開始時刻の差を計算します。

<code class="javascript">var start = Date.now();
var t = setTimeout("dosomething()", 5000);
var remaining = (start + 5000) - Date.now();</code>

ただし、タイムアウトが一時停止されて再開された場合、この計算は正確ではない可能性があることに注意することが重要です。前に提供したタイマー ラッパー関数では、残り時間が追跡され、それに応じて更新され、残り時間を取得するためのより信頼性の高い方法が提供されます。

以上がJavaScript でタイムアウト実行を制御し、残り時間を判断するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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