Elemente während des Ladevorganges zeigen
Casi
- php
0 Philipp Hasenfratz0 Casi
0 Raik
Hallo Leute,
ich habe meine Seiten teilweise aus einer Datenbank generiert.
Die Seiten erscheinen stets erst, wenn alle Daten vollständig vorhanden sind.
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!
Könnt Ihr mir weiterhelfen?
Danke!
Casi
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.
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
Auf _alle_ diese Faktoren hast du über PHP absolut keine Möglichkeit
der Beeinflussung.
Danke, dann weiß ich ja jetzt Bescheid!
Hallo, Casi!
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!
das hat mit php nichts zu tun. darauf hat nur der aufbau deiner seite einfluss.
der kopf wird dann schon vor dem ende des ladevorganges angezeigt, wenn der browser ihn unabhängig von den nachfolgenden elementen der seite komplett rendern (seine endgültige darstellung aus deinem html/css-code erkennen) kann.
du musst also mit einer festen höhe und breite des kopfes arbeiten und wenn du z.b. mit tabellen arbeitest, diese am ende des kopfes alle schliessen und darunter mit neuen anfangen.
freundl. Grüsse aus Berlin, Raik