Antje Hofmann: Rechenleistung freigeben / Sleep

Beitrag lesen

Hallo Niggel

ID = setInterval("Warte()", 10);

function Warte(){
  if (Wert != "OK") {
    ID = setInterval("Warte()", 10);
  }
}

so müsste es gehen.

nein auch nicht. setInterval rufst ja die Funktion alle 10 ms auf. So wie du sie aufbaust, wird mit jedem Aufruf erneut ein setInterval initialisiert.

2 Möglichkeiten gibt es:

ID = window.setTimeout("Warte()", 10);

function Warte(){
  if (Wert != "OK") {
 //Wert stimmt nicht, neuer Wartezyklus wird eingeleitet
    ID = window.setTimeout("Warte()", 10);
  }
}

oder

ID = window.setInterval("Warte()", 10);

function Warte(){
  if (Wert == "OK") {
//Wert stimmt, Intervallschleife wird beendet
    ID = window.clearInterval("Warte()", 10);
  }
}

Mehr dazu:
http://selfhtml.teamone.de/javascript/objekte/window.htm#clear_interval
http://selfhtml.teamone.de/javascript/objekte/window.htm#set_interval
http://selfhtml.teamone.de/javascript/objekte/window.htm#set_timeout

Viele Grüße

Antje