dedlfix: "Bitte warten" währen Ladevorgang

Beitrag lesen

Tach!

und erst, wenn alles fertig ist, sendet er die neue Seite zum Client.

Auch als Antwort zu EKKi, so absolut ist das nicht. Ein PHP-Script schickt seine Ausgabe ständig zum Webserver (zumindest im PHP-als-Modul-Betrieb). Man kann von PHP aus mit flush() den Webserver bitten (nicht zwingen), seinen Puffer direkt an den Client zu senden, auch wenn er noch nicht voll ist. Hat man eine lange Ausgabe schickt also der Webserver üblicherweise von sich aus immer mal wieder was raus. Allerdings kann nun auch noch der Browser denken, dass er so wenig Zeug jetzt noch nicht rendern mag und lieber noch ein paar Bytes abwartet.

Letzlich bleibt die flush()-Methode reichlich unsicher, selbst wenn der Webserver mitspielt. Große Websites schicken deswegen lieber mal eine leere statische Rahmenseite und holen dann mit Ajax die eigentlichen Inhalte rein, wenn der datenliefernde Server endlich alles zusammengetragen hat. Am Ende ist das für den Anwender aber immer noch ein reichlich unbefriedigender Zustand. Da baut sich vor ihm eine Seite auf, jedoch die eigentlichen Inhalte kommen quälend langsam nachgereicht. Da können sich die Webentwickler dreimal auf die Schulter klopfen, was für einen tollen Warte-Animations-Mechanismus sie da verzapft haben.

dedlfix.