Linuchss: Jetzt funzt es: Kopf wird angezeigt, danach de Tabelle

Beitrag lesen

Hallo Henry,

dein Beispiel funktioniert bei mir (mein Server, mein Browser) mit den gewollten Verzögerungen:

<?php
ob_end_flush();
echo '<h1>test1</h1>';
sleep(1);flush();
echo '<h1>test2</h1>';
sleep(1);flush();
echo '<h1>test3</h1>';
sleep(1);flush();
?>

Merkwürdigerweise funktioniert es mit meinem Konzept nicht. Ich sende eine Mini-HTML-Seite an den Browser und erzeuge dann mit Javascript ein <table> aus knapp 500 csv-Zeilen, das ich nachträglich einfüge.

Wenn ich die Javascript-Zeit stoppe, um den <table>...</table> String zu erzeugen, ergeben sich so um die 200 Millisekunden. Das Einfügen benötigt weitere 700 ms:

document.getElementById("adressliste").innerHTML = html_string;

Obwohl die HTML-Seite also komplett beim FF ist, zeigt der nichts an, solange JS läuft.

Mit einem Trick habe ich es dann doch hinbekommen. Die Table-Erzeugung in eine function gepackt und die mit Zeitverzögerung aufgerufen:

//erzeugeTable();
  window.setTimeout( erzeugeTable, 100);

Jetzt wird der Kopf der Seite wie gewünscht angezeigt und ca. 2 sec später erscheint die Tabelle. Warum das 2 sec sind und nicht knapp 1 sec JS-Durchlaufzeit, weiß ich nicht. Ach ja, nachdem JS fertig ist, muss der Browser das ja noch umsetzen.

Danke für den Tipp, der mich dazu brachte, noch mal zu experimentieren.

Linuchs