Um eine kurze Verzögerung in die Skripte einzubauen, hilft in Javascript “setTimeout”: Was in PHP der sleep() Befehl macht, ist in Javascript “setTimeout”. Wichtig ist hier aber die Groß- und Kleinschreibung: Der Befehl beginnt mit kleinem “s”, das “T” von Timeout wird aber groß geschrieben. Mit setTimeout kann man eine Funktion oder einen Befehl zeitverzögert starten: Das können wenige Millisekunden, Sekunden oder Minuten sein. Ganz egal wie lange das Warten mit Javascript dauert: Der Wert wird immer in Millisekunden angegeben.
Javascript: Sleep-Befehl mit “setTimeout”
Der Befehl funktioniert ganz einfach: Man ruft ihn zusammen mit dem Befehl oder der Funktion auf, die nach dem Warten ausgeführt werden sollen. Das Skript wartet dann, bis die angegebene Zeit abgelaufen ist: Anschließend wird der Befehl ausgeführt und das Skript springt zum nächsten Befehl.
So ruft man eine Funktion auf, die nach 5 Sekunden starten soll:
setTimeout(meinefunction(),5000);
5000 ist dabei der Wert für fünf Sekunden: 5 Sekunden entsprechen genau 5000 Millisekunden, eine Sekunde wären 1000 Millisekunden.
Möchte man statt einer eigenen Funktion nur einen einzigen Befehl aufrufen, lautet der Code so:
setTimeout(function(){ alert('test'); },1000);
Dies erzeugt nach einer Sekunde Warten eine Message-Box mit dem Wert Text. Auch hier gibt man eine kurze Funktion in dem setTimeout Befehl ein: Dies ist deutlich übersichtlicher ist als die alternative Schreibweise, bei der man leicht mit den Anführungszeichen durcheinander kommt:
setTimeout("alert('test');",1000);
Aber auch andere Javascript-Befehle lassen sich so zeitverzögert starten: Dieser Code ändert nach einer Sekunde die Hintergrundfarbe des Elements mit der ID “div”:
setTimeout(function(){
document.getElementById('div').style.backgroundColor = "#FFF";
},1000);
An diesem Beispiel zeigt sich auch, warum die erste Schreibweise praktisch ist: Durch die kurze Funktion im setTimeout Befehl muss man nicht auf die Anführungszeichen achten.