Stefan: setTimeout()

Beitrag lesen

Hallo Ihr Alle,

ich habe ein kleines JavaScript zusammengebastelt, das das Bild einer WebCam in unterschiedlichen Geschwindigkeiten aktuallisieren soll. Prinzipiell funktioniert es. Allerdings ist das Verhalten, was die Refresh-Time angeht, etwas merkwürdig. Wenn ich z.B. vom Default auf 3 Sekunden gehe, dann wird 6 Intervalle lang korrekt refreshed. Plötzlich blinkt Intervall 20 Sekunden auf und danach wieder 3 Sekunden. Noch verrückter ist es bei 10 Sekunden. Nachstehend kommt der Code. Probiert es doch bitte mal aus und gebt mir evtl. einen Tip woran es liegen könnte.

Vielen Dank

Stefan

<!--  This page was created with CoffeeCup WebCam -->
<!--           www.coffeecup.com/webcam           -->
<html>
<head>
<LINK rel="stylesheet" type="text/css" href="http://www.tandem6066.de/new/css/tandem6066_01.css">
<title>Stefan's Webcam</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta http-equiv="Pragma" content="no-cache">
<script language="Javascript">
  <!--
    var first = 'Y';
    var speed, jetzt, hour, min, sec;

function refreshCam(speed)
     {
      if (first == 'N')
       {
        jetzt = new Date();
        hour  = jetzt.getHours();
 if (hour < 10) hour = '0' + hour;
 min   = jetzt.getMinutes();
        if (min  < 10) min  = '0' + min;
 sec   = jetzt.getSeconds();
 if (sec  < 10) sec  = '0' + sec;
        document.interval.interval.value = hour + ':' + min + ':' + sec + '  ' + speed/1000 + ' Sekunden';
       }
      first = 'N';
      rfsh = new Date() ; rfsh = "?"+rfsh.getTime();
      document.images["webcam"].src = "webcam2.jpg"+rfsh;
      setTimeout("refreshCam(" + speed + ")", speed);
     }
  //-->
</script>
</head>
<body bgcolor="#FFFFFF" text="#080000" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0">
<form name="interval">
<center><img src="webcam1.jpg" name="webcam" width="352" height="288" border="0" alt="Look at me!"></center>
<script language="JavaScript">
  if (first == 'Y')
   {
    refreshCam(20000);
   }
</script>
   Refresh Interval: <INPUT name="interval" type="text" size="30" value="20 Sekunden" readonly>
</form>
<table>
 <td>
  <form action="JavaScript:refreshCam(20000)">
  <input type="submit" value=" 20 Sekunden">
  </form>
 </td>
 <td>
  <form action="JavaScript:refreshCam(10000)">
  <input type="submit" value=" 10 Sekunden">
  </form>
 </td>
 <td>
  <form action="JavaScript:refreshCam(3000)">
  <input type="submit" value=" 3 Sekunden">
  </form>
 </td>
</tabel>
</body>
</html>