setInterval vs setTimeout: Mana yang patut anda gunakan?

王林
Lepaskan: 2024-08-16 08:38:02
asal
789 orang telah melayarinya

setInterval vs setTimeout: ¿Cuál deberías usar?

Jika anda telah menggunakan JavaScript, anda mungkin pernah menjumpai setInterval dan setTimeout pada satu ketika. Kedua-dua kaedah ini adalah seperti alat ajaib untuk memberitahu kod anda apabila melakukan sesuatu selepas beberapa ketika atau setiap selang waktu tertentu. Tetapi bilakah anda harus menggunakan satu dan bukan yang lain? ?

Apakah setTimeout dan setInterval?

Sebelum memutuskan yang mana satu untuk digunakan, adalah wajar mengingati apa yang dilakukan oleh setiap orang.

BayangkansetTimeoutsebagai penggera yang berbunyi selepas beberapa ketika. Anda memberitahunya berapa lama untuk menunggu dan kemudian, boom, ia menjalankan fungsi. Tapi dia buat sekali sahaja.

rreee

Di sini, "Hello!" muncul selepas 2 saat dan kemudian tamat, fungsi tidak berulang.

Dalam kessetIntervalia seperti penggera yang terus berdering setiap beberapa minit sehingga anda mematikannya. Anda memberitahunya berapa lama untuk menunggu antara ulangan dan ia terus melaksanakan fungsi sehingga anda menyuruhnya berhenti.

rreee

Dalam kes ini, mesej akan muncul setiap 2 saat, tanpa henti, sehingga anda menghentikan selang dengan fungsi clearInterval.

Bilakah anda harus menggunakan setTimeout?

setTimeout ialah kawan baik anda apabila anda mahu sesuatu berlaku sekali sahaja, tetapi tidak serta-merta. Berikut adalah beberapa situasi di mana ia sangat berguna:

  • Jeda pendek: Mungkin anda perlu menunggu beberapa saat sebelum menjalankan animasi, atau mungkin anda ingin memberi masa untuk memuatkan sebelum memaparkannya.

  • Proses tak segerak: Kadangkala anda perlu menunggu seketika sebelum meneruskan ke langkah seterusnya dalam operasi yang kompleks.

Jadi, jika anda hanya memerlukan sedikit kelewatan sebelum menjalankan sesuatu sekali, setTimeout ialah pilihan anda.

Dan bagaimana dengan setInterval?

setInterval ialah apa yang anda mahukan jika anda memerlukan sesuatu untuk berlaku berulang kali, seperti jam yang tidak pernah berhenti berdetik. Berikut ialah beberapa contoh setInterval bersinar:

  • Jam dan Pemasa: Bayangkan jam yang mengemas kini masa setiap saat atau pemasa undur.

  • Semakan berterusan: Semak dari semasa ke semasa sama ada terdapat mesej baharu, kemas kini atau jika sesuatu telah berubah dalam aplikasi anda.

  • Kemas kini masa nyata: Muat semula kandungan halaman dengan data baharu setiap beberapa saat.

Jika apa yang anda perlukan adalah untuk sesuatu terus berlaku pada selang masa yang tetap, maka setInterval adalah satu-satunya.

Beberapa perkara tentang prestasi

Adalah penting untuk menyatakan bahawa kedua-dua setTimeout dan setInterval adalah tidak mudah. Jika aplikasi anda sangat sibuk, pemasa mungkin tertunda, terutamanya jika anda menjalankan banyak perkara pada masa yang sama. Dan berhati-hati dengan setInterval, kerana jika apa yang anda lakukan di dalamnya mengambil masa lebih lama daripada selang yang anda tetapkan, fungsi boleh mula bertimbun, dan ketika itulah masalah bermula.

Untuk mengelakkan perkara ini, sesetengah memilih untuk menggunakan setTimeout secara rekursif dan bukannya setInterval, kerana ini memberi anda lebih kawalan ke atas apabila fungsi berikut dilaksanakan:

rreee

Tetapi jika anda memutuskan untuk menggunakan setInterval adalah penting untuk mengetahui cara menghentikan selang untuk mengelakkannya daripada terus berjalan selama-lamanya. Di sinilah clearInterval masuk. Kaedah ini membolehkan anda menghentikan selang aktif. Berikut ialah contoh mudah:

rreee

Dalam contoh ini, mesej "Hello setiap 2 saat!" akan berulang selama 10 saat. Selepas masa itu, clearInterval menguruskan menghentikan selang dan mesej "Selang dihentikan" dipaparkan dalam konsol.

Jadi yang mana satu saya gunakan?

Ringkasnya, jika anda memerlukan sesuatu untuk berlaku hanya sekali selepas beberapa ketika, setTimeout adalah cara yang perlu dilakukan. Tetapi jika anda mahu sesuatu berulang secara berterusan, pilih setInterval.

Kedua-duanya adalah alat yang berkuasa dalam JavaScript dan mengetahui masa untuk menggunakan setiap satu boleh menjadikan kod anda lebih cekap dan lebih mudah untuk diurus.

Atas ialah kandungan terperinci setInterval vs setTimeout: Mana yang patut anda gunakan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
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
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!