Casi: Elemente während des Ladevorganges zeigen

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

  1. 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

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

      Danke, dann weiß ich ja jetzt Bescheid!

  2. 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