Rumah  >  Artikel  >  hujung hadapan web  >  Bagaimana untuk mengosongkan semua pemasa dalam javascript

Bagaimana untuk mengosongkan semua pemasa dalam javascript

青灯夜游
青灯夜游asal
2021-09-08 16:17:2616655semak imbas

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);

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(/* ??? */); // 操蛋

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);
}

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);
}

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);
}

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 <p>Dengan cara ini kami telah menyedari dengan sempurna keperluan untuk mengosongkan semua pemasa dalam halaman</p><p>Kemudian mari kita cuba kesan dan ambil Video Tencent Contohnya: </p><p><img src="https://img.php.cn/upload/article/000/000/024/25a396045749763fc94022f6ef2f2138-1.png" alt="Bagaimana untuk mengosongkan semua pemasa dalam javascript"></p><p> Terdapat imej karusel pada halaman utama imej Tencent Video biasanya dilaksanakan menggunakan <code>setInterval</code> 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. </p><p><img src="https://img.php.cn/upload/article/000/000/024/d9bda6a1ef7600550d417bee83b01171-2.png" alt="Bagaimana untuk mengosongkan semua pemasa dalam javascript"></p><p>Selepas melaksanakan kod sebentar tadi dalam konsol, saya mendapati bahawa imej karusel memang telah berhenti. </p><p>Hebat! </p><p>[Pembelajaran yang diBagaimana untuk mengosongkan semua pemasa dalam javascriptorkan: <a href="https://www.php.cn/course/list/2.html" target="_blank">Tutorial JavaScript Lanjutan</a>]</p>

Atas ialah kandungan terperinci Bagaimana untuk mengosongkan semua pemasa dalam javascript. 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
Artikel sebelumnya:Apakah itu nodejs dan vuejsArtikel seterusnya:Apakah itu nodejs dan vuejs