Philipp Hasenfratz: Elemente während des Ladevorganges zeigen

Beitrag lesen

Halihallo Casi

ich habe meine Seiten teilweise aus einer Datenbank generiert.
Die Seiten erscheinen stets erst, wenn alle Daten vollständig vorhanden sind.

Liegt das sicher nicht an dir?
Wenn du nämlich alles über Funktionen lädst, die allesamt ineinander
Verschachtelt sind, kann PHP überhaupt nichts an den Browser senden,
denn der "Call-Stack" der Funktionen muss erst vollständig abgebaut
sein.

Ich möchte aber den Kopf der Seite bereits anzeigen, während die anderen Daten noch aus der Datenbank geladen werden, damit der User sieht: Aha, da tut sich was!

Einfach ist dies nicht zu machen, denn PHP ist nicht der einzige
Cache, der die Ausgabe buffert.

http://www.php.net/flush

mag vielleicht etwas helfen, aber da wäre noch...

a) der Webserver-Cache, der ggf. den Output erst an den Browser
   sendet, wenn das Script beendet ist (sprich der Outputhandle
   geschlossen wird).
b) das Server-Betriebssystem, welches ein TCP Packet erst voll
   gefüllt haben möchte, bis es gesendet wird.
c) einige andere Zwischenstationen zwischen Webserver und Client.
d) der Proxi-Cache, welcher die Seite erst einliest und dem Browser
   dann die Ergebnisse zukommen lässt
e) der Browser, welcher zuerst etwas empfangen bzw. auf einige
   andere Ressourcen (z.B. Bilder) wartet und die Seite dann rendern
   muss.

Auf _alle_ diese Faktoren hast du über PHP absolut keine Möglichkeit
der Beeinflussung.

Viele Grüsse

Philipp