Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Boleh Mengawal Pemasa Berulang dalam JavaScript Menggunakan `setInterval` dan `clearInterval`?

Bagaimanakah Saya Boleh Mengawal Pemasa Berulang dalam JavaScript Menggunakan `setInterval` dan `clearInterval`?

Susan Sarandon
Susan Sarandonasal
2024-12-08 07:02:12178semak imbas

How Can I Control Recurring Timers in JavaScript Using `setInterval` and `clearInterval`?

Mengawal Pemasa Berulang dengan setInterval dan clearInterval

Dalam kod anda, anda bertujuan untuk menggunakan drawAll() sekali apabila kekunci tertentu ditekan. Walau bagaimanapun, fungsi setInterval menetapkan pemasa berulang yang berulang kali memanggil drawAll(). Untuk menangani perkara ini, kami boleh menggunakan clearInterval untuk menghentikan pelaksanaan gelung pemasa.

setInterval mencipta pemasa berulang dan mengembalikan pemegang. Pemegang ini berfungsi sebagai pengecam yang boleh digunakan oleh clearInterval untuk menghentikan pemasa daripada mencetuskan. Begini cara ia berfungsi:

var handle = setInterval(drawAll, 20);

// When you want to cancel it:
clearInterval(handle);
handle = 0; // This marks the interval as cleared

Pada penyemak imbas, pemegangnya dijamin bukan nombor sifar. Oleh itu, menggunakan 0 sebagai nilai pemegang menunjukkan bahawa tiada pemasa ditetapkan.

Untuk menjadualkan fungsi untuk menyala sekali sahaja, anda boleh menggunakan setTimeout dan bukannya setInterval. setTimeout melaksanakan fungsi sekali selepas kelewatan yang ditentukan. Ia mengembalikan pemegang yang boleh digunakan dengan clearTimeout untuk membatalkan panggilan fungsi sebelum ia dilaksanakan jika perlu:

setTimeout(drawAll, 20);

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengawal Pemasa Berulang dalam JavaScript Menggunakan `setInterval` dan `clearInterval`?. 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