Dirk Ruchatz: Aktualiesieren einer Seite

Beitrag lesen

Moin André,

<script language="JavaScript">
function neu() {
   location.href = "hallo.htm";
   setTimeout("neu()", 20000);
}
</script>
<body onload="setTimeout('neu()', 20000)">

Mich würde mal interessieren, warum die zweimal setTimeout("neu()", 20000) eingebaut hast?
Also im Script und im Body!

ein setTimeout führt eine Funktion ja immer nur _einmal_ aus, wenn diese Funktion also nur im Body stehen würde, würde die Seite genau _einmal_ neu geladen (nämlich nach 20 Sekunden) und danach nicht mehr.

Das zusätzliche setTimeout im Script bewirkt also, daß auch weiterhin alle 20 Sekunden die Funktion neu() ausgeführt wird und dadurch die Seite neu geladen wird.

Eine Alternativlösung wäre natürlich das Arbeiten mit setInterval, aber das wird laut SELFHTML (<../../tecb.htm#a44>) erst von den 4er Browsern verstanden.

Gruß
Dirk

PS: Beim nochmaligen Durchlesen dieser Nachricht ist mir aufgefallen, daß man alles, was ich oben geschrieben habe, getrost vergessen kann.

Da aber nicht nur ich sondern auch Stefan darauf hereingefallen ist, denke ich, daß es sich trotzdem lohnt, diese Nachricht mit einer entsprechenden Erklärung abzuschicken.

Also: alles, was ich oben geschrieben habe ist natürlich grundsätzlich richtig, aber in diesem speziellen Fall wird ja durch den Aufruf von neu im body die Seite neu geladen und dadurch auch wieder <body onload="..."> ausgeführt. Damit wird dann wieder ein setTimeout aktiviert, wodurch das setTimeout im Script überflüssig (oder sogar störend) wird.