Gibt es eine Möglichkeit, eine Funktion in JavaScript regelmäßig aufzurufen?
javascript
javascript-events
Coderex
quelle
quelle
setInterval()
ist die richtige Antwort auf die Frage, unabhängig vom Parameter. Es ist nur ein Beispiel und beide Methoden sind per Definition korrekt.Bitte beachten Sie, dass setInterval () häufig nicht die beste Lösung für die regelmäßige Ausführung ist. Dies hängt wirklich davon ab, welches Javascript Sie tatsächlich regelmäßig aufrufen.
z.B. Wenn Sie setInterval () mit einem Zeitraum von 1000 ms verwenden und in der periodischen Funktion einen Ajax-Aufruf tätigen, dessen Rückkehr gelegentlich 2 Sekunden dauert, führen Sie einen weiteren Ajax-Aufruf durch, bevor die erste Antwort zurückkommt. Dies ist normalerweise unerwünscht.
Viele Bibliotheken verfügen über periodische Methoden, die vor den Gefahren einer naiven Verwendung von setInterval schützen, wie beispielsweise das von Nelson gegebene Prototyp-Beispiel.
Beachten Sie Folgendes, um eine robustere periodische Ausführung mit einer Funktion zu erreichen, die einen jQuery-Ajax-Aufruf enthält:
Ein anderer Ansatz besteht darin, setTimeout zu verwenden, aber die verstrichene Zeit in einer Variablen zu verfolgen und dann die Zeitüberschreitungsverzögerung bei jedem Aufruf dynamisch festzulegen, um eine Funktion so nahe wie möglich am gewünschten Intervall auszuführen, jedoch niemals schneller, als Sie Antworten zurückerhalten können.
quelle
Jeder hat bereits eine setTimeout / setInterval-Lösung. Ich denke, es ist wichtig zu beachten, dass Sie Funktionen an setInterval übergeben können, nicht nur Zeichenfolgen. Es ist wahrscheinlich ein wenig "sicherer", echte Funktionen anstelle von Zeichenfolgen zu übergeben, die für diese Funktionen "ausgewertet" werden.
Oder:
quelle
Alte Frage aber .. Ich brauchte auch einen periodischen Task Runner und schrieb TaskTimer . Dies ist auch nützlich, wenn Sie mehrere Aufgaben in unterschiedlichen Intervallen ausführen müssen.
TaskTimer
funktioniert sowohl im Browser als auch im Node. In der Dokumentation finden Sie alle Funktionen.quelle
Sie sollten sich setInterval () und setTimeout () ansehen.
Hier ist ein anständiger Tutorial-Artikel .
quelle
ja - zu sehen
setInterval
undsetTimeout
für Code zu bestimmten Zeiten ausgeführt werden . setInterval ist derjenige, mit dem Code regelmäßig ausgeführt wird.Sehen Sie sich eine Demo an und antworten Sie hier zur Verwendung
quelle
quelle
Verwenden Sie setInterval, da die Funktion regelmäßig ausgeführt werden soll
quelle
Der native Weg ist zwar
setInterval()
/clearInterval()
, aber wenn Sie bereits die Prototype- Bibliothek verwenden, können Sie PeriodicalExecutor nutzen:Dies verhindert überlappende Anrufe. Von http://www.prototypejs.org/api/periodicalExecuter :
quelle