Drupal 8 and Bigpipe
One of the most important features for any end user is to have fast loading page. For decades, to achieve this, various solutions have been provided. Among those, few are related to backend performance improvements which make the response from the server faster, another one is to pass the compressed html content to the browser which reduces the network lag.
If you think deeper, you will find that for an end user, it doesn’t matter as to how much time it takes for the page to load, what really matters is that how quickly he can see the most important parts of the page and start interacting with the page.
This was realized by JavaScript world and they came up with the concept of lazy loading (http://www.appelsiini.net/projects/lazyload) meant especially for images which actually allows ordering of important images of a page first and then sending subsequent AJAX requests to load rest of the images. This concept has a few drawbacks, traditionally it is only for images, (people have still tried to make it run for content) and secondly it actually fires separate HTTP request per lazy load, which subsequently increases the number of connections to the backend server thereby increasing the server load.
So, what is the solution?
The solution is a revolutionary concept which was coined by Facebook in 2009 widely known as BigPipe. In layman language, it divides the web page in small chunks (pagelets) and creates a pipeline through which most important or relevant sections of the page are loaded first in the browser, though the time taken to load the full page is the same but for end user, he/she can already start interacting with the page, while the other pagelets are loading in parallel. The concept is based on pipelining concept performed by modern microprocessors. The best part is that you don’t have to change your existing web browsers or servers to implement this functionality and it is implemented in PHP and JavaScript.
The session assumes familiarity with basic web and front end concepts.
What we'll discuss:
-
Traditional webpage serving model
-
Introducing BigPipe
-
How BigPipe works
-
Pipeline-based BigPipe Webpage Serving Model
-
Downsides of using BigPipe.
-
Drupal8 using BigPipe