Erläuterung der Anwendungsfälle von JavaScript setTimeout und setTimeinterval

Erläuterung der Anwendungsfälle von JavaScript setTimeout und setTimeinterval

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 Funktionszeigern

Der 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);

diskutieren

Wenn 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:
  • JavaScript-Datenvisualisierung: ECharts-Kartenerstellung
  • Super detaillierte grundlegende JavaScript-Syntaxregeln
  • Detaillierte Erklärung der obligatorischen und impliziten Konvertierung von Typen in JavaScript
  • JavaScript implementiert das Ändern der Farbe einer Webseite über einen Schieberegler
  • Detaillierte Erklärung der Unterschiede zwischen var, let und const in JavaScript es6
  • Detaillierte Erklärung des this-Zeigeproblems in JavaScript
  • Fallstudie zu JavaScript-Funktionsaufrufen, Apply- und Bind-Methoden
  • Detaillierte Erklärung zur Verwendung des Arguments-Objekts in JavaScript
  • Beispiel für die JavaScript-Funktion „CollectGarbage“
  • Detaillierte Erklärung von BOM und DOM in JavaScript
  • JavaScript-Timer zur Realisierung einer zeitlich begrenzten Flash-Sale-Funktion
  • JavaScript zum Implementieren einer zeitlich begrenzten Flash-Sale-Funktion
  • JavaScript-Objekte (Details)

<<:  Beispielanalyse für MySQL-Transaktionen, Isolationsebenen und Sperrenverwendung

>>:  Ubuntu 19.10 aktiviert SSH-Dienst (detaillierter Prozess)

Artikel empfehlen

So zentrieren Sie Ihre HTML-Schaltfläche

Wie zentrieren Sie Ihre HTML-Schaltfläche selbst?...

Detaillierte Erklärung von Softlinks und Hardlinks in Linux

Inhaltsverzeichnis 1. Grundlegende Speicherung vo...

MySQL 8.X Installations-Tutorial unter Windows

Zuvor habe ich MySQL 5.7 verwendet, aber da MySQL...

Universelle Lösung für den Fehler beim Starten von MySQL unter Windows

MySQL-Startfehler Vor der Installation von MySQL ...

Einführung in die grundlegenden TypeScript-Typen

Inhaltsverzeichnis 1. Grundtypen 2. Objekttyp 2.1...

Grafisches Tutorial zur Installation der dekomprimierten Version von mysql5.7.14

MySQL ist in Community Edition (Community Server)...

JavaScript-Canvas zum Erzielen eines Regentropfeneffekts

In diesem Artikelbeispiel wird der spezifische Co...

So isolieren Sie Benutzer in Docker-Containern

Im vorherigen Artikel „UID und GID in Docker-Cont...

mysqldump-Parameter, die Sie möglicherweise nicht kennen

Im vorherigen Artikel wurde erwähnt, dass die in ...

Detaillierte Erklärung der grundlegenden Typen von TypeScript

Inhaltsverzeichnis Boolescher Typ Nummerntypen Ze...

Detaillierte Erklärung des Missverständnisses zwischen MySQL und Oracle

Inhaltsverzeichnis Wesentlicher Unterschied Daten...

Über die Position des H1-Tags in XHTML

In letzter Zeit wurde viel über H1 diskutiert (auf...

Einführung in die Bereitstellung des Selenium-Crawler-Programms unter Linux

Inhaltsverzeichnis Vorwort 1. Was ist Selen? 2. N...