Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimanakah Saya Boleh Mengawal Perlaksanaan Tamat Masa dan Menentukan Baki Masa dalam JavaScript?

Bagaimanakah Saya Boleh Mengawal Perlaksanaan Tamat Masa dan Menentukan Baki Masa dalam JavaScript?

Susan Sarandon
Susan Sarandonasal
2024-10-22 20:47:12291semak imbas

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

Menjeda dan Menyambung Masa Tamat dalam JavaScript

Apabila bekerja dengan JavaScript, anda mungkin perlu mengawal aliran operasi tak segerak seperti tamat masa. Di sini, kami meneroka cara untuk menjeda dan menyambung semula tamat masa aktif, serta mendapatkan baki masa pada tamat masa semasa.

Menjeda dan Menyambung Masa Tamat

Untuk menjeda tamat masa, anda boleh menggunakan pembalut fungsi yang memintas tetingkap.setTimeout panggilan dan menyediakan fungsi yang diperlukan. Fungsi pembalut, Pemasa, mengambil fungsi panggil balik dan kelewatan sebagai argumen dan mengendalikan penjedaan, penyambungan semula dan penjejakan masa yang tinggal.

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

Untuk menggunakan pembungkus ini, buat seketika objek Pemasa dan panggilnya kaedah pause() dan resume() mengikut keperluan.

Mendapatkan Baki Masa

Untuk mendapatkan baki masa pada tamat masa semasa, salah satu cara ialah menyimpan masa mula apabila tamat masa ditetapkan dan kira perbezaan antara masa semasa dan masa mula apabila berhenti seketika.

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

Walau bagaimanapun, adalah penting untuk ambil perhatian bahawa jika tamat masa telah dijeda dan disambung semula, pengiraan ini mungkin tidak tepat. Dalam fungsi pembalut Pemasa yang disediakan sebelum ini, masa yang tinggal dijejaki dan dikemas kini dengan sewajarnya, menyediakan kaedah yang lebih dipercayai untuk mendapatkan masa yang tinggal.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengawal Perlaksanaan Tamat Masa dan Menentukan Baki Masa dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn