Rumah > Artikel > hujung hadapan web > Analisis mendalam pemasa dalam JavaScript
Artikel ini membawa anda pengetahuan yang berkaitan tentang javascript, yang terutamanya memperkenalkan isu berkaitan pemasa dalam JavaScript Terdapat dua pemasa dalam JavaScript, iaitu setTimeout digunakan untuk menentukan Laksanakan kod yang ditentukan selepas jumlah tertentu. time dan setInterval digunakan untuk melaksanakan kod yang ditentukan pada selang masa yang tetap. Saya harap ia akan membantu semua orang.
[Cadangan berkaitan: tutorial video javascript, bahagian hadapan web]
Terdapat dua jenis pemasaan dalam Peranti JavaScript:
setTimeout(): Jalankan sekeping kod selepas masa yang ditentukan (pelaksanaan tertunda).
setInterval(): Laksanakan sekeping kod pada selang waktu (pelaksanaan selang).
JavaScript menyediakan fungsi pemasa, yang boleh melambatkan atau berulang kali melaksanakan fungsi atau segmen kod.
方法 | 说明 |
---|---|
setTimeout() | 在指定的毫秒数后调用函数或执行一段代码 |
setInterval() | 按照指定的周期(以毫秒计)来调用函数或执行一段代码 |
clearTimeout() | 取消由setTimeout()方法设置的定时器 |
clearInterval() | 取消由setInterval()设置的定时器 |
Dua pemasa diterangkan secara berasingan di bawah.
Buat pemasa:
setTimeout(() => console.log("我在两秒后被输出!"), 2*1000); // 1000 = 1s // 执行上述代码,两秒后会在控制台输出:我在两秒后被输出!
Terdapat 4 parameter dalam setTimeout(), hanya dua parameter digunakan di sini, The parameter pertama ialah fungsi anak panah, dan parameter kedua menunjukkan berapa saat untuk melaksanakan fungsi anak panah ini. Proses ini dipanggil panggil balik, dan fungsi anak panah ini dipanggil fungsi panggil balik.
Fungsi panggil balik :
Hantar fungsi ke fungsi lain sebagai parameter, dan kemudian laksanakan fungsi yang diluluskan selepas pelaksanaan fungsi lain selesai. Dalam kod di atas, fungsi anak panah diluluskan sebagai parameter untuk setTimeout() menyelesaikan pelaksanaan selepas dua saat, jadi fungsi anak panah mula dilaksanakan, jadi hasil yang kita lihat akan dikeluarkan selepas kelewatan dua saat .
Fungsi anak panah:
Maksud fungsi anak panah adalah sama seperti fungsi biasa, tetapi ungkapannya berbeza. Oleh kerana fungsi anak panah sangat ringkas, ia sering dibenamkan dalam fungsi lain. Jika anda ingin mengetahui lebih lanjut mengenainya, sila rujuk bahan lain dan saya tidak akan menerangkan butirannya di sini.
Batalkan pemasa:
Apabila mencipta pemasa ini, pengecam unik tugas pemasa ini akan dikembalikan:
let t = setTimeout(() => console.log("我在两秒后被输出!"), 2*1000); // 1000 = 1s // t 即是一个标识符,但它不是我们认为的那种标识符,你可以打印出来试试!
clearTimeout () digunakan untuk membatalkan tugas berjadual, dengan syarat tugas berjadual belum dicetuskan lagi:
clearTimeout(t); // 传入定时任务的标识符 console.log("任务取消,两秒后我不会有任何输出!")
Buat pemasa :
Penggunaan parameter adalah konsisten dengan setTimeout(). >Batalkan pemasa
:let t = setInterval(() => console.log("每隔一秒我会被输出一次!"), 1000)
clearInterval() digunakan untuk membatalkan tugasan yang dijadualkan berulang Jalankan kod berikut untuk melihat kesan:
Fahami pemasa secara mendalamSebelum memahami pemasa secara mendalam, Kami perlu memahami urutan tunggal JavaScript. Oleh kerana JavaScript adalah satu-benang, hanya satu keping kod boleh dilaksanakan pada satu masa. Pelaksanaan tugasan dalam JavaScript mempunyai konsep baris gilir, iaitu tugasan akan dibariskan dan dilaksanakan mengikut urutan
masuk dahulu, keluar dahululet t = setInterval(() => console.log("每隔一秒我会被输出一次!"), 1000); // 用上面学到的 setTimeout() 来取消循环定时任务 setTimeout(() => { clearInterval(t); console.log("我在五秒时被取消!"); ;}, 5*1000);.
tunjuk cara pemasa setTimeout():
Gunakan animasi untuk menunjukkan proses pelaksanaan kod berikut:
let i = 0; console.log(i); setTimeout(() => console.log("我在两秒后被输出!"), 2*1000); console.log("Hello world!");
Kod dalam program akan ditambahkan pada baris gilir satu demi satu Apabila setTimeout() dilaksanakan,
tidak akan ditambah pada baris gilir serta-mertadan pemasa akan ditangguhkan selama dua saat. . Semasa kelewatan pemasa, program tidak menunggu, tetapi secara langsung melaksanakan sekeping kod seterusnya, jadi "Hello dunia akan dikeluarkan terlebih dahulu." Selepas dua saat, tugas pemasa akan ditambahkan pada baris gilir dan ayat "Saya akan keluar dalam dua saat!"
Saya harap animasi dapat membantu semua orang memahami! Animasi baris gilir di sini pada asasnya tidak seperti ini Baris masuk dan keluar Tugas pemasa ditambahkan pada baris gilir selepas dua saat Memandangkan kelajuan pelaksanaan program adalah sangat pantas, kod dalam baris gilir telah dilaksanakan baris gilir pada masa ini sepatutnya kosong. Pengeluaran animasi menyusahkan, jadi saya tidak memadam kod dalam baris gilir Anda boleh menganggap kod dalam baris gilir sebagai kod yang telah dilaksanakan.tunjuk cara pemasa setInterval()
: Teorinya adalah sama seperti setTimeout(), perbezaannya ialah setInterval() akan menambah tugas yang dijadualkan pada baris gilir setiap sekali sekala.Terdapat beberapa isu yang perlu anda perhatikan apabila menggunakan setInterval(). secara berterusan tanpa mengira selang waktu kerana mereka telah Tambah ke baris gilir. Lihat demonstrasi berikut:
Lihat hasil pelaksanaan:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>演示</title> </head> <body> <script> let t = setInterval(() => alert("我会阻塞程序!如果你不及时点确认的话。"), 2*1000); </script> </body> </html>
Apabila kotak amaran muncul, klik OK dalam masa dan ia akan tidak menyebabkan halangan Oleh itu, Kotak amaran akan muncul setiap saat. Kegagalan untuk mengklik pengesahan dalam masa menyebabkan tugasan bertimbun dan akan dipaparkan secara berterusan selepas sekatan selesai.
setTimeout() melaksanakan pemasaan gelung
:Atur cara akan mengeluarkan nilai setiap saat. [Cadangan berkaitan:
tutorial video javascriptlet i = 0; function timer() { i++; console.log(i); // 函数内定时器的回调函数会继续调用 timer() // 每秒自调用一次,因此实现类似死循环的效果 setTimeout( () => { timer(); }, 1000); } // 启动函数 timer(),
bahagian hadapan web
]Atas ialah kandungan terperinci Analisis mendalam pemasa dalam JavaScript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!