PeterK: Refresh?

Hi!

Nachdem ich mit Javascript und .innerHTML den Inhalt eines Elements auf eine "Bitte Warten..."-Meldung geändert habe beginnt eine Schleife von ca. 5s Arbeitszeit. Leider wird der Inhalt des Elements erst nach dem Ablauf der Schleife geändert. Ich habe bereits versucht nach dem ndern des Textes mit der sleep-Funktion (siehe unten) eine Pause einzulegen, aber selbst bei einer 5s-Pause funktioniert es nicht. Wie kann ich den Inhalt des HTML-Elementes sofort updaten? Ach ja, ich muss noch sagen die Anwendung ist als IE-Only konzipiert.

Hier die Funktion:

function sleep(ms) {
  var jetzt = new Date();
  var start = jetzt.getTime();
  while(true) {
    var jetzt = new Date();
    if(start+ms < jetzt.getTime()) return true;
  }
}

Thx, Peter

--
Es gibt immer eine lösung - auch wenn sie keiner findet!!
  1. Hi!
    function sleep(ms) {
      var jetzt = new Date();
      var start = jetzt.getTime();
      while(true) {
        var jetzt = new Date();
        if(start+ms < jetzt.getTime()) return true;
      }
    }

    Wer sollte Dich daran hindern mit einfachen mathematischen Funktionen die vergangene und verbleibende Zeit zu berechnen und dann mit der Dir bekannten innerHTML- Eigenschaft ein Element zu ändern?

    Kritik an der Funktion:

    Du verschwendest die Prozessorleistung Deiner Besucher. Das ist wirklich "Arbeitszeit". Ein wirklich guter Browser würde davor warnen.
    Setze einfach mal die Wartezeit recht hoch und schau dann mal nach, wie Dein system ausgelastet ist. Und jetzt stell Dir vor, irgendjemand beschaut die Seite und sein Rechner dient zum Beispiel auch als "Datenbankserver". Das kann man einfach nicht machen. Auch nicht 5 Sekunden lang. Oder ist die Aufgabe aus einem Microsoft- Zertifikats- Seminar für VB-Script Programmierer???

    fastix

    1. Nein :) Normalerweise wäre es nur 100 ms, aber es bringt ja nix!

      Ich ändere die innerHTML-Eigenschaft und dann setzt eine Schleife ein, die einige Zeit in anspruch nehmen kann (sie MUSS aber durchlaufen, da sie für die Funktion der Seite uinbedingt nötig ist!). Aber erst nachdem die Schleife fertig ist, wird der Inhalt des Div-Elements geändert - Wenn es schon zuspät ist! Also ein Beispiel:

      [link]http://mitglied.lycos.de/peterk/anderes/StatusBox.html[/link]

      PeterK