Rumah >hujung hadapan web >tutorial css >Bagaimana untuk Menghentikan setTimeout atau setInterval Loop untuk Memuatkan Penunjuk?

Bagaimana untuk Menghentikan setTimeout atau setInterval Loop untuk Memuatkan Penunjuk?

Linda Hamilton
Linda Hamiltonasal
2024-12-03 03:05:111067semak imbas

How to Stop a setTimeout or setInterval Loop for Loading Indicators?

Menghentikan gelung setTimeout

Apabila mencipta penunjuk pemuatan menggunakan sprite, adalah perkara biasa untuk bergantung pada gelung untuk mengitar kedudukan latar belakang. Satu pendekatan melibatkan penggunaan fungsi setTimeout, tetapi bagaimana jika anda perlu menghentikan gelung apabila proses pemuatan selesai?

Pelaksanaan setTimeout

Fungsi setTimeout dalam JavaScript mengembalikan pemegang pemasa yang membolehkan anda membatalkan tamat masa menggunakan fungsi clearTimeout. Untuk melaksanakan ini, anda boleh mencipta fungsi stop() dalam fungsi setBgPosition:

function setBgPosition() {
    var c = 0,
        timer = 0;
    ...
    return stop;

    function stop() {
        if (timer) {
            clearTimeout(timer);
            timer = 0;
        }
    }
}

Untuk menggunakan ini, anda boleh menetapkan fungsi setBgPosition kepada pembolehubah dan memanggil fungsi stop() kemudian untuk menghentikan gelung:

var stop = setBgPosition();
// ... later ...
stop();

Pendekatan Alternatif: setInterval

Alternatif untuk menggunakan setTimeout ialah setInterval, yang berulang kali melaksanakan fungsi pada selang waktu tertentu. Begini cara anda boleh menggunakannya dengan clearInterval:

function setBgPosition() {
    ...
    return setInterval(run, 200);
}

Untuk menghentikan gelung:

var timer = setBgPosition();
// ... later ...
clearInterval(timer);

Walau bagaimanapun, adalah disyorkan untuk meneroka pilihan untuk mengesan keadaan penyiapan dan membenarkan setBgPosition menghentikan gelung itu sendiri. Pendekatan ini memberikan kawalan dan fleksibiliti yang lebih besar dalam mengendalikan operasi pemuatan.

Atas ialah kandungan terperinci Bagaimana untuk Menghentikan setTimeout atau setInterval Loop untuk Memuatkan Penunjuk?. 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