Rumah >hujung hadapan web >tutorial js >Bagaimana untuk Melaksanakan setInterval dalam JavaScript Tanpa Kelewatan Awal?

Bagaimana untuk Melaksanakan setInterval dalam JavaScript Tanpa Kelewatan Awal?

Linda Hamilton
Linda Hamiltonasal
2024-11-09 13:44:02876semak imbas

How to Execute setInterval in JavaScript Without an Initial Delay?

Melaksanakan setInterval Tanpa Kelewatan Permulaan

Dalam JavaScript, kaedah setInterval mengulangi pelaksanaan fungsi pada selang waktu tertentu. Walau bagaimanapun, secara lalai, terdapat kelewatan yang ketara sebelum pelaksanaan pertama. Artikel ini meneroka cara untuk menghapuskan kelewatan ini.

Walaupun mungkin untuk memanggil fungsi secara manual sebelum memulakan pemasa, ia tidak sesuai dan boleh dilupakan dengan mudah. Pendekatan yang lebih berkesan ialah menggunakan setTimeout dalam fungsi itu sendiri:

function foo() {
   // Execute function body
   // ...

   // Schedule subsequent execution
   setTimeout(foo, delay);
}

// Start the cycle
foo();

Pendekatan ini memastikan selang yang konsisten antara pelaksanaan fungsi sambil memberikan fleksibiliti untuk menamatkan gelung dengan mengetepikan panggilan setTimeout apabila perlu.

Sebagai alternatif, ungkapan fungsi yang dipanggil serta-merta (IIFE) boleh digunakan untuk mencipta dan memulakan gelung dalam satu langkah:

(function foo() {
    ...
    setTimeout(foo, delay);
})();

Kaedah ini menghapuskan kelewatan awal dan memudahkan proses persediaan dengan merangkum fungsi dan jadual pelaksanaan dalam blok serba lengkap. Sama ada anda lebih suka panggilan terus, kaedah setTimeout atau pendekatan IIFE, teknik ini menawarkan penyelesaian yang mudah untuk melaksanakan setInterval tanpa kelewatan awal yang tidak diingini.

Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan setInterval dalam JavaScript Tanpa Kelewatan Awal?. 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