Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Boleh Mengubah Selang `setInterval` secara Dinamik dalam JavaScript?
Mengubah Suai Selang setInterval Semasa Pelaksanaan
Kaedah setInterval memudahkan pelaksanaan berulang fungsi pada selang waktu tertentu. Walau bagaimanapun, jika anda perlu melaraskan selang ini secara dinamik semasa fungsi sedang berjalan, cabaran tertentu akan timbul.
Dalam contoh yang diberikan, anda cuba mengubah suai selang menggunakan baris berikut:
var interval = setInterval(function() { ... }, 10*counter);
Walau bagaimanapun, pendekatan ini gagal kerana nilai 10*kaunter sedang menilai kepada 0. Untuk menangani isu ini, anda boleh menggunakan fungsi tanpa nama, seperti yang digambarkan di bawah:
var counter = 10; var myFunction = function() { clearInterval(interval); // Stop the current interval counter *= 10; // Increment the counter interval = setInterval(myFunction, counter); // Set a new interval with the updated counter } var interval = setInterval(myFunction, counter); // Start the initial interval
Fungsi tanpa nama ini mengosongkan selang semasa, melaraskan nilai pembilang, dan kemudian menetapkan selang baharu dengan pembilang yang dikemas kini.
Penyelesaian Alternatif: Menggunakan setTimeout
Sebagai alternatif kepada menggunakan clearInterval dan setInterval, anda boleh memanfaatkan setTimeout untuk melaksanakan selang pelarasan. Pendekatan ini menghapuskan keperluan untuk mengosongkan selang sebelumnya:
var counter = 10; var myFunction = function() { counter *= 10; // Increment the counter setTimeout(myFunction, counter); // Set a new timeout with the updated counter } setTimeout(myFunction, counter); // Start the initial timeout
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengubah Selang `setInterval` secara Dinamik dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!