BigPipe
17 May 2016
Reading time ~1 minute
BigPipe
什么是BigPipe
- 是一种不局限于语言的前后端整合技术方案
- 由Facebook首创
- 适合比较大型的,需要大量服务器运算的站点
- 有效减少HTTP请求
- 兼容多浏览器
BigPipe解决的问题
- 下载阻塞
- 服务器与浏览器算力浪费
BigPipe模型
一般的网页加载是直接通过访问服务器,发送请求,收到返回数据,然后渲染
一般堵塞模型: 后端渲染页面→网络延迟→浏览器端页面渲染
,所有的数据一次性渲染
BigPipe思路,分块加载,一次请求,多次返回
- 浏览器发送一次请求;
- 服务端收到请求后,开始处理请求;
- 服务器端按预先写好的控制流程,开始分块渲染HTML;
- 如果渲染完了向浏览器端发送数据;
- 浏览器端收到分块数据后开始渲染
BigPipe堵塞模型(类似于CPU分级流水)
pagelet 1 | 服务器端计算 网络传输 浏览器渲染
|
pagelet 2 | 服务器端计算 网络传输 浏览器渲染
|
pagelet 3 | 服务器端计算 网络传输 浏览器渲染
_____________|________________________________________________________________
分级传输极大提高了首页渲染效率
其他
BigPipe不利于SEO,应用时可通过User Agent判断请求是人还是搜索引擎,如果是人的话,则应用BigPipe渲染模式,如果是搜索引擎的话,则应用传统渲染模式。
alcat2008
Dreamer, Practitioner, Incomplete Front-ender