Der Martin: HTML-Überschrift anzeigen, dann weitere Daten empfangen funzt nicht

Beitrag lesen

Hallo,

Es kann ein paar Sekunden dauern, bevor die Seite aufgebaut ist, aber es ist mir NICHT gelungen, die Überschrift schon mal anzuzeigen.

das kannst du auch nicht gezielt steuern.

Früher gab es das PHP-Kommando flush() das den Inhalt des Ausgabepuffers schon mal abschickte und der Browser zeigte das an.

Das gibt's immer noch.

Heute funktioniert entweder flush() nicht mehr oder der Browser (FF) baut sie Seite erst nach Erhalt der gesamten Daten auf.

Da spielen mehrere Dinge mit rein. Zum Beispiel könnte der Webserver die Ausgabedaten nochmal zwischenpuffern, obwohl PHP sagt "hau wech".
Aber vor allem kannst du nicht beeinflussen, wie der Browser mit teilweise empfangenen Daten umgeht. Vermutlich puffert der auch erst ein paar kB, bevor er anfängt, die Seite zu rendern - was ja auch normalerweise vernünftig ist, denn nachfolgende Elemente könnten ja die Größe eines schon angezeigten noch verändern: Eine sehr breite Tabelle bläht beispielsweise die Breite des body-Elements auf; das weiß der Browser aber erst, wenn er die Tabelle zumindest komplett angeschaut hat.

Problem: Die vorherige Seite bleibt stehen

Je nach Browser. Firefox macht das so, ja, während AFAIR der IE den Fensterinhalt löscht.

window.addEventListener('DOMContentLoaded', function () {
  alert( "Seite geladen" );
...
  window.addEventListener('onbeforeunload', function () {
    alert( "Seite verlassen" );
  });
});

Das Event heißt beforeunload (ohne on).

Seite geladen wird angezeigt, Seite verlassen aber nicht. Habe den Unterschied zwischen onbeforeunload und beforeunload nicht verstanden und beides ausprobiert.

Der Unterschied wird im Wiki erklärt.

Es kann aber trotzdem sein, dass dieser Eventhandler ignoriert wird, weil es in der Browserkonfiguration so eingestellt ist.

Ciao,
 Martin

--
Sei n die Anzahl der bekannten Fehler in einer Software, dann gilt stets: n = n+1