Mit beiden Methoden kann ein JavaScript-Code nach einer festgelegten Zeitspanne ausgeführt werden, aber jede hat ihre eigenen Anwendungsszenarien. Tatsächlich ist die Syntax von setTimeout und setInterval dieselbe. Sie alle haben zwei Parameter, einer ist die auszuführende Codezeichenfolge und der andere ist das Zeitintervall in Millisekunden, nach dem der Code ausgeführt wird. Es gibt jedoch einen Unterschied zwischen diesen beiden Funktionen. Nachdem setInterval den Code einmal ausgeführt hat, wird er nach einem festgelegten Zeitintervall automatisch wiederholt, während setTimeout den Code nur einmal ausführt. Obwohl es so aussieht, als ob setTimeout nur auf Ein-/Aus-Aktionen angewendet werden kann, können Sie eine Funktionsschleife erstellen, um setTimeout wiederholt aufzurufen und so wiederholte Vorgänge zu erreichen: Show Time(); Funktion showTime() { var heute = neues Datum(); alert("Es ist: " + today.toString()); setTimeout("showTime()", 5000); } Sobald diese Funktion verwendet wird, wird die Uhrzeit alle 5 Sekunden angezeigt. Wenn Sie setInterval verwenden, lautet der entsprechende Code wie folgt: setInterval("showTime()", 5000); Funktion showTime() { var heute = neues Datum(); alert("Es ist: " + today.toString()); } Diese beiden Methoden sehen möglicherweise sehr ähnlich aus und liefern ähnliche Ergebnisse. Der größte Unterschied zwischen beiden besteht jedoch darin, dass die Methode setTimeout die Funktion showTime nicht alle 5 Sekunden ausführt. Sie führt die Funktion showTime 5 Sekunden nach jedem Aufruf von setTimeout aus. Dies bedeutet, dass, wenn die Ausführung des Hauptteils der Funktion „showTime“ 2 Sekunden dauert, die gesamte Funktion alle 7 Sekunden ausgeführt wird. Allerdings ist setInterval nicht an die aufgerufene Funktion gebunden, sondern wiederholt die Funktion lediglich in einem bestimmten Intervall. Wenn Sie eine Aktion nach einem festgelegten Zeitintervall genau ausführen müssen, verwenden Sie am besten setInterval. Wenn Sie sich nicht durch kontinuierliche Aufrufe gegenseitig stören möchten, insbesondere wenn jeder Funktionsaufruf umfangreiche Berechnungen und eine lange Verarbeitungszeit erfordert, verwenden Sie am besten setTimeout. Verwendung von FunktionszeigernDer erste Parameter der beiden Timing-Funktionen ist eine Codezeichenfolge. Tatsächlich kann dieser Parameter auch ein Funktionszeiger sein, aber IE 5 unter Mac unterstützt dies nicht. Wenn Sie einen Funktionszeiger als zweiten Parameter der Funktionen setTimeout und setInterval verwenden, können diese eine an anderer Stelle definierte Funktion ausführen: setTimeout(showTime, 500); Funktion showTime() { var heute = neues Datum(); alert("Es ist: " + today.toString()); } Darüber hinaus können anonyme Funktionen auch als Inline-Funktionen deklariert werden: setTimeout(Funktion(){var heute = neues Datum(); alert("Es ist: " + today.toString());}, 500); diskutierenWenn die Zeitfunktion nicht verarbeitet wird, führt setInterval denselben Code weiterhin aus, bis das Browserfenster geschlossen wird oder der Benutzer auf eine andere Seite wechselt. Es gibt jedoch weiterhin Möglichkeiten, die Ausführung der Funktionen setTimeout und setInterval zu beenden. Wenn der setInterval-Aufruf abgeschlossen ist, wird eine Timer-ID zurückgegeben, mit der in Zukunft auf den Timer zugegriffen werden kann. Wenn die ID an clearInterval übergeben wird, kann die Ausführung des aufgerufenen Prozesscodes beendet werden. Die konkrete Implementierung lautet wie folgt: var Intervallprozess = setInterval("alert('ZIEL!')", 3000); var stopGoalLink = document.getElementById("stopGoalLink"); attachEventListener(stopGoalLink, "klicken", stopGoal, false); Funktion stopGoal() { Intervall löschen(Intervallprozess); } Solange auf stopGoalLink geklickt wird, wird „intervalProcess“ abgebrochen und „intervalProcess“ wird in Zukunft nicht wiederholt ausgeführt, unabhängig davon, wann darauf geklickt wird. Wenn setTimeout innerhalb der Timeout-Periode abgebrochen wird, kann dieser Beendigungseffekt auch bei setTimeout wie folgt erreicht werden: var timeoutProcess = setTimeout("alert('ZIEL!')", 3000); var stopGoalLink = document.getElementById("stopGoalLink"); attachEventListener(stopGoalLink, "klicken", stopGoal, false); Funktion Stoppziel() { Zeitüberschreitung löschen(Zeitüberschreitungsprozess); } Damit ist dieser Artikel über die detaillierten Anwendungsfälle von JavaScript setTimeout und setTimeinterval abgeschlossen. Weitere relevante Inhalte zur Verwendung von js setTimeout und setTimeinterval finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den verwandten Artikeln weiter unten. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: Beispielanalyse für MySQL-Transaktionen, Isolationsebenen und Sperrenverwendung
>>: Ubuntu 19.10 aktiviert SSH-Dienst (detaillierter Prozess)
Inhaltsverzeichnis Zabbix benutzerdefinierte Über...
Das Gitterlayout weist einige Ähnlichkeiten mit d...
In diesem Artikel finden Sie das Installations-Tu...
Hallo zusammen, ich bin Liang Xu. Sind Sie bei de...
Dieser Artikel veranschaulicht anhand eines Beisp...
Ich habe heute gerade Mybatis gelernt und einige ...
Und hier nun ohne weitere Umschweife die Renderin...
In diesem Artikelbeispiel wird der spezifische Co...
1. Laden Sie centos7 herunter Download-Adresse: h...
Inhaltsverzeichnis 1. Spark vs. Hadoop 1.1 Nachte...
Die Docker-Images, die wir normalerweise erstelle...
Kürzlich habe ich auf einem öffentlichen Konto ei...
Closure-Implementierung privater Variablen Privat...
Nginx verwendet reguläre Ausdrücke, um Platzhalte...
Implementieren eines Karussells mit einem einzeln...