Am 14. September 2017 haben wir eine überarbeitete Fassung unserer Datenschutzrichtlinie veröffentlicht. Wenn Sie video2brain.com weiterhin nutzen, erklären Sie sich mit diesem überarbeiteten Dokument einverstanden. Bitte lesen Sie es deshalb sorgfältig durch.

bigpipe (nodejs / HHVM)

BigPipe: Website-Pipelining und schnellerer Aufbau durch einzelne Pagelets

Beim Seitenaufbau einer Website mit vielen Javascript- und CSS-Dateien kommt es oft dazu, dass man als Besucher beobachten kann wie der Browser das Layout darstellt.
Das ist besonders dann der Fall, wenn eingebundene Javascript-Dateien das Rendering blockieren weil sie noch am laden sind. Aber auch wenn für das Layout (oder Teile davon) mehrere einzelne CSS-Dateien eingebunden werden und der Besucher zum Beispiel eine langsame Internetverbindung hat.

An dieser Stelle kommt Facebook's Pipeline-Technik "BigPipe" in's Spiel. Mit BigPipe kann man eine Website in einzelne Fragmente zerlegen die Pagelets genannt werden. Jedes Pagelet besteht mindestens aus seinem HTML-Code und optional aus zugehörigen Javascript- und CSS-Dateien.

Website mit BigPipe in einzelne Fragmente aufteilen
Wenn das HTML auf dem Server erzeugt wird dann wird es nicht direkt an der eigentlichen Stelle im HTML-Code ausgegeben sondern an der Stelle wird nur ein Platzhalter-Element reingeschrieben welches leer ist.
Dieses Platzhalter-Element bekommt dann eine eindeutige ID damit BigPipe das Element identifizieren und den echten HTML-Code injizieren kann. Bevor das passiert werden allerdings erst einmal die zum Pagelet zugehörigen CSS-Ressourcen eingebunden und der HTML-Code wird erst dann in das Platzhalter-Element injiziert wenn die CSS-Ressource vollständig geladen ist. Wenn von allen Pagelets die CSS-Ressourcen geladen sind und der HTML-Code in die Platzhalter-Element injiziert wurde, dann geht BigPipe hin und bindet von jedem Pagelet die JS-Ressourcen ein.

Jedes einzelne Pagelet wird also gepipelinet und nacheinander gerendert.

Ein sehr wirkungsvoller Einsatz wird mittels Nodejs erreicht. Mittlerweile gibt es hierfür auch PHP-Bibliotheken, so daß die Engine auch für bestehende (oder neue) PHP-Seiten verwendet werden kann.

Das Ergebnis ist eine weitaus höhere Performance und Usability. In Verbindung mit HHVM (PHP) werden Server-Requests beschleunigt und dabei Ressourcen geschont und besser genutzt.
Andere Wünsche zu Programmierung Verfügbare Video-Trainings zu Programmierung
13 Stimmen
Das Training will ich auch!
Dieser Wunsch hat 13 Stimmen erhalten.

Kommentare (0)

Anmelden, um einen Kommentar zu verfassen