Rumah >hujung hadapan web >tutorial js >Bagaimanakah Saya Boleh Melaksanakan Fungsi JavaScript secara Rekursif pada Selang Biasa?

Bagaimanakah Saya Boleh Melaksanakan Fungsi JavaScript secara Rekursif pada Selang Biasa?

Patricia Arquette
Patricia Arquetteasal
2024-12-05 08:56:101012semak imbas

How Can I Recursively Execute a JavaScript Function at Regular Intervals?

Melaksanakan Fungsi Secara Rekursif pada Selang Masa Tertentu

Dalam JavaScript, fungsi setTimeout() membenarkan anda menjadualkan panggilan fungsi pada masa yang telah ditetapkan. Ini berguna apabila anda perlu melakukan tindakan selepas kelewatan tertentu. Walau bagaimanapun, bagaimana jika anda ingin melaksanakan fungsi berulang kali pada selang masa yang tetap?

Satu pendekatan ialah menggunakan fungsi setInterval():

setInterval(function, delay)

Fungsi ini secara berterusan menggunakan fungsi panggil balik yang ditentukan di selang masa yang diberikan. Walau bagaimanapun, kaedah ini boleh menghadapi masalah jika masa pelaksanaan fungsi melebihi selang.

Pendekatan yang lebih dipercayai ialah menggunakan setTimeout() bersama-sama dengan fungsi tanpa nama yang melaksanakan sendiri:

(function(){
    // Your code goes here
    setTimeout(arguments.callee, 60000);
})();

Fungsi ini menjadualkan panggilan seterusnya ke fungsi yang sama selepas selang waktu yang ditentukan. Ia juga memastikan bahawa panggilan seterusnya tidak dibuat sehingga pelaksanaan fungsi semasa selesai. Rujukan arguments.callee digunakan untuk memanggil semula fungsi, tetapi ia tidak digunakan dalam Ecmascript 5. Alternatif yang lebih baik ialah menggunakan fungsi bernama dan merujuknya dalam panggilan setTimeout.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Melaksanakan Fungsi JavaScript secara Rekursif pada Selang Biasa?. 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