Rumah >hujung hadapan web >tutorial js >Bagaimana untuk Menjeda dan Menyambung Masa Tamat dalam JavaScript dengan Cekap?
Menjeda dan Menyambung Semula Tamat Masa JavaScript
Apabila bekerja dengan setTimeouts dalam JavaScript, keupayaan untuk menjeda dan menyambung semulanya boleh berguna dalam pelbagai senario. Seseorang mungkin menghadapi situasi di mana kelewatan telah dikonfigurasikan, tetapi jeda diperlukan sebelum pelaksanaan atau menunggu operasi tak segerak selesai.
Menjeda dan Menyambung Masa Tamat dengan Pembungkus Tersuai
Daripada menyimpan masa semasa dan mengira baki tempoh, anda boleh membuat pembalut tersuai di sekitar window.setTimeout yang menyediakan fungsi jeda dan sambung semula. Pendekatan ini menawarkan penyelesaian yang lebih elegan dan boleh diguna semula:
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(); };
Kelas Pemasa tersuai ini membolehkan anda menjeda dan menyambung tamat masa mengikut keperluan. Untuk menggunakannya, mulakan ia dengan fungsi panggil balik dan lengah, kemudian panggil kaedah jeda() atau resume() seperti yang diperlukan.
Contoh:
var timer = new Timer(function() { alert("Done!"); }, 1000); timer.pause(); // Perform asynchronous operations or other tasks timer.resume();
Nota: Pembalut tersuai ini tidak menyediakan cara untuk mendapatkan semula baki masa pada pemasa yang dijeda. Sebagai alternatif, seseorang boleh melaksanakan pembungkus yang lebih komprehensif yang menjejaki baki masa dan menyediakan kaedah getTimeRemaining().
Atas ialah kandungan terperinci Bagaimana untuk Menjeda dan Menyambung Masa Tamat dalam JavaScript dengan Cekap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!