Hi Daniel,
Sollte es wirklich so sein, dass das am Ende einer Funktion anders ist und dort wirklich gewartet wird?
Ja. Wieso?
Weil es nichts zum weiter machen gibt, ganz einfach. Der befehl, der verzögert wird ist der nexte befehl.
Nein, das ist definitiv falsch. So wie Du es sagst geht es nicht. Teste diese Datei:
<html>
<head>
<title>Sleep</title>
<script type="text/javascript">
<!--
function gaehn()
{
mehrgaehn();
alert("Zweite Meldung");
}
function mehrgaehn()
{
setTimeout("alert('Erste Meldung')", 10000);
}
//-->
</script>
</head>
<body>
<a href="#" onClick="gaehn();">Funktion starten</a>
</body>
</html>
Obwohl Du behauptest, dass am Ende der Funktion mehrgaehn() gewartet werden müsste, erscheint das Alert "Zweite Meldung" deutlich vor der ersten. Von einer Sleep-Funktion kann also nicht die Rede sein.
Nette Idee. Tut aber nicht so doll. Solche endlosschleifenteile sind nie gut.
*hmpf* Sorry für die Endlosschleife - hatte nicht damit gerechnet dass es nicht funzt, die Variable ausserhalb der while-Schleife zu verändern. Habe noch ein bisschen damit rumgespielt, aber ohne Erfolg - innerhalb von while-Schleifen lässt sich setTimeout weder auf die Variable noch auf ein break anwenden (auf alert z.B. aber schon - muss ich das verstehen?). Auch in andere Funktionen lässt es sich nicht auslagern. Da bleiben letztlich wohl doch nur Hilfsmittel wie in <../../sfarchiv/2000_1/t11294.htm#a56920> oder <../../sfarchiv/1999_2/t02874.htm#a13714>
Grüße,
Utz