首頁  >  文章  >  web前端  >  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 物件並呼叫其根據需要使用pause()和resume()方法。

擷取剩餘時間

要取得目前逾時的剩餘時間,一種方法是儲存設定逾時時的開始時間,計算暫停時目前時間與開始時間的差值。

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

但是要注意的是,如果超時暫停又恢復,這個計算可能不準確。在前面提供的 Timer 包裝函數中,剩餘時間被追蹤並相應更新,為檢索剩餘時間提供了更可靠的方法。

以上是JavaScript 如何控制逾時執行並確定剩餘時間?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn