ChrisB: Wann wird die Anzeige wie aktualisiert?

Beitrag lesen

Hi,

In einer Schleife wird ein Datum nach dem anderen verarbeitet, und am Ende der Scheife steht z.B. etwas wie
bla.innerHTML = ergebnis;
Der Browser müsste doch jetzt den neuen Inhalt anzeigen, denn eigentlich kann er nicht wissen, dass 200ms später das Script wieder am selben Punkt angekommen sein wird, um erneut
bla.innerHTML = ergebnis;
auszuführen, aber jetzt mit einem anderen Ergebnis. Die Anzeige müsste sich also laufend ändern, tut sie aber nicht. Egal wie viele solche Befehle vorkommen und in welchen Abständen, z.B. immer nur nach jedem 1000sten Schleifendurchlauf, am Bildschirm tut sich erst etwas, wenn das Programm fertig ist. Dann sieht man das Endergebnis.

Ja, so ist das nun mal™.

So lange JavaScript "kontinuierlich" laeuft, aktualisieren die Browser die Anzeige nicht.

Wenn du das umgehen willst, nutze keine normale Schleife, sondern bastle dir ueber setTimeout/setInterval und damit wiederholte Aufruf einer Funktion eine Schleife nach - zwischen den einzelnen Aufrufen gibt der JavaScript-Interpreter die Kontrolle dann wieder an die Rendering-Engine des Browsers zurueck, so dass diese die Anzeige updaten kann.

MfG ChrisB

--
"The Internet: Technological marvel of marvels - but if you don't know *what* you're lookin' for on the Internet, it is nothing but a time-sucking vortex from hell."