Heim > Web-Frontend > CSS-Tutorial > Wie stoppt man eine setTimeout- oder setInterval-Schleife zum Laden von Indikatoren?

Wie stoppt man eine setTimeout- oder setInterval-Schleife zum Laden von Indikatoren?

Linda Hamilton
Freigeben: 2024-12-03 03:05:11
Original
984 Leute haben es durchsucht

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

setTimeout-Schleifen stoppen

Beim Erstellen eines Ladeindikators mithilfe eines Sprites ist es üblich, sich auf eine Schleife zu verlassen, um durch Hintergrundpositionen zu blättern. Ein Ansatz besteht darin, die setTimeout-Funktion zu verwenden, aber was ist, wenn Sie die Schleife stoppen müssen, wenn der Ladevorgang abgeschlossen ist?

setTimeout-Implementierung

Die setTimeout-Funktion in JavaScript gibt a zurück Timer-Handle, mit dem Sie das Timeout mithilfe der Funktion „clearTimeout“ abbrechen können. Um dies zu implementieren, können Sie eine stop()-Funktion innerhalb der setBgPosition-Funktion erstellen:

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

    function stop() {
        if (timer) {
            clearTimeout(timer);
            timer = 0;
        }
    }
}
Nach dem Login kopieren

Um dies zu verwenden, können Sie die setBgPosition-Funktion einer Variablen zuweisen und die stop()-Funktion später aufrufen, um die Funktion anzuhalten Schleife:

var stop = setBgPosition();
// ... later ...
stop();
Nach dem Login kopieren

Alternativer Ansatz: setInterval

Eine Alternative zur Verwendung von setTimeout ist setInterval, das eine Funktion in einem angegebenen Intervall wiederholt ausführt. So können Sie es mit clearInterval verwenden:

function setBgPosition() {
    ...
    return setInterval(run, 200);
}
Nach dem Login kopieren

So stoppen Sie die Schleife:

var timer = setBgPosition();
// ... later ...
clearInterval(timer);
Nach dem Login kopieren

Es wird jedoch empfohlen, Optionen zum Erkennen der Abschlussbedingung zu erkunden und setBgPosition zu erlauben, die Schleife zu stoppen Schleife selbst. Dieser Ansatz bietet eine größere Kontrolle und Flexibilität bei der Abwicklung von Ladevorgängen.

Das obige ist der detaillierte Inhalt vonWie stoppt man eine setTimeout- oder setInterval-Schleife zum Laden von Indikatoren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage