Apakah ada cara untuk memanggil fungsi secara berkala di JavaScript?
javascript
javascript-events
coderex
sumber
sumber
setInterval()
adalah jawaban yang benar untuk pertanyaan itu, apa pun parameternya. Ini hanyalah sebuah contoh, dan kedua metode tersebut menurut definisi benar.Harap perhatikan bahwa setInterval () seringkali bukan solusi terbaik untuk eksekusi berkala - Ini sangat tergantung pada javascript apa yang sebenarnya Anda panggil secara berkala.
misalnya. Jika Anda menggunakan setInterval () dengan periode 1000ms dan dalam fungsi periodik Anda membuat panggilan ajax yang kadang-kadang membutuhkan waktu 2 detik untuk kembali, Anda akan membuat panggilan ajax lain sebelum respons pertama kembali. Ini biasanya tidak diinginkan.
Banyak perpustakaan memiliki metode periodik yang melindungi dari jebakan menggunakan setInterval secara naif seperti contoh Prototipe yang diberikan oleh Nelson.
Untuk mencapai eksekusi periodik yang lebih kuat dengan fungsi yang memiliki panggilan ajax jQuery, pertimbangkan sesuatu seperti ini:
Pendekatan lain adalah dengan menggunakan setTimeout tetapi lacak waktu yang telah berlalu dalam suatu variabel dan kemudian atur waktu tunda setiap doa secara dinamis untuk menjalankan fungsi sedekat mungkin dengan interval yang diinginkan tetapi tidak pernah lebih cepat daripada Anda bisa mendapatkan respons kembali.
sumber
Setiap orang sudah memiliki solusi setTimeout / setInterval. Saya pikir penting untuk dicatat bahwa Anda dapat melewatkan fungsi ke setInterval, bukan hanya string. Ini sebenarnya mungkin sedikit "lebih aman" untuk melewati fungsi nyata daripada string yang akan "ditingkatkan" ke fungsi tersebut.
Atau:
sumber
Pertanyaan lama tapi .. Saya juga membutuhkan pelari tugas berkala dan menulis TaskTimer . Ini juga berguna ketika Anda perlu menjalankan banyak tugas pada interval yang berbeda.
TaskTimer
berfungsi baik di browser dan Node. Lihat dokumentasi untuk semua fitur.sumber
Anda ingin melihat setInterval () dan setTimeout ().
Berikut ini adalah artikel tutorial yang layak .
sumber
ya - lihat
setInterval
dansetTimeout
untuk mengeksekusi kode pada waktu-waktu tertentu. setInterval akan menjadi yang digunakan untuk mengeksekusi kode secara berkala.Lihat demo dan jawab di sini untuk penggunaan
sumber
sumber
Karena Anda ingin fungsi dijalankan secara berkala , gunakan setInterval
sumber
Cara asli memang
setInterval()
/clearInterval()
, tetapi jika Anda sudah menggunakan perpustakaan Prototipe Anda dapat memanfaatkan PeriodicalExecutor:Ini mencegah panggilan yang tumpang tindih. Dari http://www.prototypejs.org/api/ PeriodicalExecuter :
sumber