Matti Maekitalo: + (Forumsauslese) Prozessorauslastung

Beitrag lesen

Hallo

Ich habe eine Frage zum Artikel in der Forumsauslese: </selfhtml/sfausles/tsfa_tci.htm#a5>. Dabei ist mir folgendes aufgefallen. Die Funktion slide() (unten ist nochmal der Quelltext) ruft sich ja nach 1000 ms selbst wieder auf.
Wird dabei die aufrufende Funktion beendet, oder wartet diese, bis die aufgerufende Funktion beendet wird?
Wenn die aufrufende Funktion wartet, dann wird ja mit der Zeit immer mehr der Prozessor beansprucht. Das ist bei heutigen Hochleistungsmaschinen wohl zu vernachlässigen, aber man könnte dies ja ein wenig ändern.

Hier der alte Quelltext:

function slide()
{ if (document.all)
   {
   if (bar.style.color == "white")
       { bar.style.color = "blue"; }
       else { bar.style.color = "white";}
    setTimeout("slide()",1000);
   }
}

Hier mein Vorschlag (gesamter Quelltext)

<head>
<script language="JavaScript">
<!--
if (document.all){ blink = window.setInterval("slide()",1000); }

function slide()
{
  if (bar.style.color == "white")
  { bar.style.color = "blue"; }
    else { bar.style.color = "white";}
}

//-->
</script>
</head><body bgcolor="#FFFFFF">

<div id="bar" style="color:blue"><blink><h1>text</h1></blink></div>
<p><a href="javascript:window.clearInterval(blink);">Hör auf mim Blinken</a></p>
</body>

Wie ihr sehen könnt, habe ich die Funktionsaufrufe des setTimeout durch  einen setInterval() ersetzt. Dies sollte den Prozessor doch entlasten. Ausserdem gibt es dem Benutzer die Möglichkeit, das Blinken wieder abzustellen, und, mit einer neuen Funktion, könnte er es wieder anfangen lassen. Ich habe das mal zum Beispiel in dem Link gezeigt. Klickt man auf ihn, hört das Blinken auf (wenigstens für geplagte IE-User 8-))

Was meint ihr dazu.