Rumah >hujung hadapan web >tutorial js >Bagaimana untuk Melaksanakan Fungsi setInterval Tanpa Kelewatan pada Larian Pertama?

Bagaimana untuk Melaksanakan Fungsi setInterval Tanpa Kelewatan pada Larian Pertama?

DDD
DDDasal
2024-11-09 09:23:02460semak imbas

How to Execute setInterval Function Without Delay on the First Run?

Laksanakan Fungsi setInterval Tanpa Lengah pada Larian Pertama

Dalam JavaScript, kaedah setInterval menjadualkan fungsi untuk dilaksanakan berulang kali selepas selang waktu tertentu. Walau bagaimanapun, secara lalai, terdapat kelewatan sebelum pelaksanaan pertama fungsi.

Untuk mengatasi kelewatan ini dan melaksanakan fungsi dengan segera pada panggilan pertama, kita boleh menggunakan salah satu kaedah berikut:

Kaedah 1: Panggilan Fungsi Terus

Pendekatan ini melibatkan panggilan fungsi secara manual sebelum memanggil setInterval.

foo();
setInterval(foo, delay);

Kaedah 2: Fungsi Pencetusan Kendiri Menggunakan setTimeout

Teknik ini mengelakkan penggunaan setInterval dan sebaliknya bergantung pada fungsi setTimeout untuk mencetuskan pelaksanaan seterusnya.

function foo() {
    // Do stuff...

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

// Start the loop
foo();

setTimeout memastikan selang minimum antara panggilan fungsi, menghapuskan kemungkinan isu daripada pelaksanaan berbilang fungsi yang menimbun tanpa berlengah-lengah.

Kaedah 3: Ungkapan Fungsi Dipanggil Segera (IIFE)

Untuk memudahkan proses, kita boleh menggunakan IIFE untuk mentakrifkan fungsi, panggilnya pada mulanya dan mulakan gelung sekali gus.

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

Pendekatan ini menawarkan kelebihan mentakrifkan fungsi dan memulakan gelung secara serentak.

Atas ialah kandungan terperinci Bagaimana untuk Melaksanakan Fungsi setInterval Tanpa Kelewatan pada Larian Pertama?. 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