Heim >Web-Frontend >js-Tutorial >Wie kann ich eine JavaScript-Funktion in regelmäßigen Abständen rekursiv ausführen?

Wie kann ich eine JavaScript-Funktion in regelmäßigen Abständen rekursiv ausführen?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-05 08:56:101010Durchsuche

How Can I Recursively Execute a JavaScript Function at Regular Intervals?

Eine Funktion rekursiv in bestimmten Zeitintervallen ausführen

In JavaScript können Sie mit der Funktion setTimeout() einen Funktionsaufruf zu einem vordefinierten Zeitpunkt planen. Dies ist nützlich, wenn Sie eine Aktion nach einer bestimmten Verzögerung ausführen müssen. Was aber, wenn Sie eine Funktion in regelmäßigen Abständen wiederholt ausführen möchten?

Ein Ansatz besteht darin, die Funktion setInterval() zu verwenden:

setInterval(function, delay)

Diese Funktion ruft kontinuierlich die angegebene Rückruffunktion auf das angegebene Zeitintervall. Bei dieser Methode können jedoch Probleme auftreten, wenn die Ausführungszeit der Funktion das Intervall überschreitet.

Ein zuverlässigerer Ansatz ist die Verwendung von setTimeout() in Verbindung mit einer selbstausführenden anonymen Funktion:

(function(){
    // Your code goes here
    setTimeout(arguments.callee, 60000);
})();

Diese Funktion plant den nächsten Aufruf derselben Funktion nach dem angegebenen Intervall. Es stellt außerdem sicher, dass der nachfolgende Aufruf erst erfolgt, wenn die aktuelle Funktionsausführung abgeschlossen ist. Die Referenz arguments.callee wird verwendet, um die Funktion erneut aufzurufen, sie ist jedoch in Ecmascript 5 veraltet. Eine bessere Alternative besteht darin, eine benannte Funktion zu verwenden und im setTimeout-Aufruf darauf zu verweisen.

Das obige ist der detaillierte Inhalt vonWie kann ich eine JavaScript-Funktion in regelmäßigen Abständen rekursiv ausführen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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