This article represents Facebook BigPipe technology and various different open source frameworks which could be used to load web page faster like Facebook. Please suggest related frameworks if one or more of them is not mentioned in this article. You may have read the text on BigPipe on several webpages. However, I wanted to present a different perspective including pictorial presentation for better understanding.
Traditional webpage serving model
Following diagram represents traditional webpage serving model.
You may notice that in traditional model, the request-response operations are pretty much sequential in nature. Thus, following can be observed:
- Webserver Busy, Browser Idle: As the request is sent from browser, and webserver is busy processing the request, browser is idle.
- Webserver Idle, Browser Busy: Similarly, as the response is transferred to browser, browser gets busy in rendering the page and webserver unable to help anymore in webpage processing.
The objective is to have both web server and browser do work in parallel to reduce the webpage loading time. In other words, when web server is busy processing the request and generating the page, browser should as well work towards page rendering.
Pipeline-based Bigpipe Webpage Serving Model
Below diagram represents parallel activities including page generation happening on web server and, at the same time, page rendering happening on browser in order. Each pagelet goes through these execution stages.
Following represents how the responses are processed by web server in Bigpipe webpage serving model.
- Downloads CSS resources mentioned in pagelet response (look the below diagram)
- The pagelet is then, displayed by settings its div container innerHTML is set to pagelet HTML markup.
For reading the same in greater detail, visit the Facebook Bigpipe page.
Opensource Bigpipe Implementations
Following are different opensource frameworks that could be used for one of your web projects: