Bagaimana untuk mengosongkan semua pemasa dalam javascript

青灯夜游
Lepaskan: 2023-01-07 11:47:39
asal
16621 orang telah melayarinya

Dalam JS, anda boleh menggunakan fungsi gelung for dan clearInterval() untuk mengosongkan semua pemasa, sintaks "end=setInterval(function(){},10000);for(i=1;i

Bagaimana untuk mengosongkan semua pemasa dalam javascript

Persekitaran pengendalian tutorial ini: sistem Windows 7, versi JavaScript 1.8.5, komputer Dell G3.

Kita kadangkala perlu mengosongkan semua pemasa dalam halaman
Jika kita menyimpan pemasa (setInterval) dengan pembolehubah apabila kita menciptanya, maka mengosongkan pemasa adalah sangat mudah dan terus Hanya jelas (clearInterval)
Contohnya:

let timer = setInterval(function () {
    console.log('timer');
}, 1000);

clearInterval(timer);
Salin selepas log masuk

Tetapi kadangkala pemasa yang dibuat tidak disimpan dengan pembolehubah, jadi kita tidak boleh mengosongkannya secara langsung
Contohnya:

let timer = setInterval(function () {
    console.log('timer');
}, 1000);
setInterval(function () {
    console.log('timer');
}, 1000);
clearInterval(timer);
clearInterval(/* ??? */); // 操蛋
Salin selepas log masuk

Kami mempunyai pembolehubah timer untuk menyimpan pemasa pertama, jadi kami boleh terus menghantar timer ke clearInterval dan mengosongkannya
Tetapi untuk pemasa kedua, kami Jika anda tidak menyimpannya, anda tidak' tidak tahu apa yang perlu dihantar apabila clearInterval, yang sangat kacau

Jadi bagaimana untuk menyelesaikan masalah ini?
Mari kita lihat dahulu peraturannya:

for (let i = 0; i < 10000; i++) {
    let t = setInterval(function () { }, 1000);
    console.log(t);
}
Salin selepas log masuk

Keputusan berjalan:

Bagaimana untuk mengosongkan semua pemasa dalam javascript

Jelas sekali mudah diperoleh: nilai pulangan
setInterval Ia adalah jenis berangka yang mewakili pemasa, dan nilai ini meningkat daripada 1 mengikut susunan pemasa dicipta
Maka tidak sukar untuk menyedari keperluan kita untuk mengosongkan semua pemasa dalam halaman
Jadi contohnya, sekarang kita ada Terdapat begitu banyak pemasa:

let t = setInterval(function () { }, 1000);
let r = Math.random() * 100;
for (let i = 0; i < r; i++) {
    setInterval(function () { }, 1000);
}
Salin selepas log masuk

Jika anda ingin mengosongkan semuanya, anda perlu menggunakan gelung untuk mengosongkan nombor yang sepadan dengan pemasa dari 1 hingga yang terakhir dibuat menggunakan clearInterval mengikut urutan. Tetapi sekarang terdapat sekumpulan pemasa Kami tidak tahu berapa banyak pemasa yang ada sekarang, jadi kami tidak tahu nombor yang sepadan dengan pemasa yang terakhir dibuat. Jadi, mula-mula kita boleh menjadi lebih ganas

for (let i = 1; i < 100000; i++) {
    clearInterval(i);
}
Salin selepas log masuk

Saya cuma dapati angka yang besar seperti 100000. Secara amnya, tidak sepatutnya ada lebih daripada 100000 pemasa pada halaman Secara amnya, pemasa berada dalam julat 1. 100000. , jadi kaedah ini pasti dapat mencapai keperluan kita.
Tetapi ia masih tidak bagus, lagipun, ia agak terlalu ganas. Kemudian kita perlu mengetahui nombor n yang sepadan dengan pemasa yang dibuat terakhir. ialah n 1, jadi kita boleh mencari n, dan kemudian kita boleh gelung dari 1 hingga n Oh, ingat untuk mengosongkan pemasa ke-1 yang baru dibuat, jadi gelung bermula dari 1 hingga akhir.

Kemudian kodnya adalah seperti berikut:

let end = setInterval(function () { }, 10000);
for (let i = 1; i <= end; i++) {
    clearInterval(i);
}
Salin selepas log masuk

Dengan cara ini kami telah menyedari dengan sempurna keperluan untuk mengosongkan semua pemasa dalam halaman

Kemudian mari kita cuba kesan dan ambil Video Tencent Contohnya:

Bagaimana untuk mengosongkan semua pemasa dalam javascript

Terdapat imej karusel pada halaman utama imej Tencent Video biasanya dilaksanakan menggunakan setInterval pemasa, tetapi kami tidak melakukannya tahu apakah pembolehubah yang menyimpan pemasa karusel ini Jika kita ingin menghentikan karusel ini, kita boleh menggunakan kod tadi untuk menghentikan terus semua pemasa.

Bagaimana untuk mengosongkan semua pemasa dalam javascript

Selepas melaksanakan kod sebentar tadi dalam konsol, saya mendapati bahawa imej karusel memang telah berhenti.

Hebat!

[Pembelajaran yang diBagaimana untuk mengosongkan semua pemasa dalam javascriptorkan: Tutorial JavaScript Lanjutan]

Atas ialah kandungan terperinci Bagaimana untuk mengosongkan semua pemasa dalam javascript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
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
Tutorial Popular
Lagi>
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!