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; } } }
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();
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); }
So stoppen Sie die Schleife:
var timer = setBgPosition(); // ... later ... clearInterval(timer);
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!