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