Skip to content

yxy9022/nodejs-bigpipe-demo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

nodejs-bigpipe-demo

这是使用 node.js+Express+BigPipe 技术应用的demo

整个页面被分成了几个小的pagelet,从演示例子中大家可以看到效果,整个页面最先加载出来,然后是各个pagelet板块逐渐的加载显示出来,各板块的显示速度是模拟延时做的,[用户信息]延时0.5s,其它板块标题后面小括号中是模拟的延时时间。

演示地址:http://bigpipe.ipyro.cn .

Mou icon


什么是BigPipe

BigPipe是一个重新设计的基础动态网页服务体系。大体思路是,分解网页成叫做Pagelets的小块,然后通过Web服务器和浏览器建立管道并管理他们在不同阶段的运行。这是类似于大多数现代微处理器的流水线执行过程:多重指令管线通过不同的处理器执行单元,以达到性能的最佳。


BigPipe技术的小结

Bigpipe将网页布局和数据渲染分离,使得用户在视觉上觉得网页提前渲染好了,其随着数据输出的过程逐步渲染页面,使得用户能够感知页面是活的。这远比一开始给出空白页面,然后在某个时候突然渲染好给用户的体验更好。Node在这个过程中,其异步特性使得数据的输出能够并行,数据的输出与数据调用的顺序无关,越早调用完的数据可以越早渲染到页面中,这个特性使得Bigpipe更趋完美。

要完成BigPipe这样的逐步渲染页面的过程,其实通过Ajax也能完成,但是Ajax的背后是Http调用,要耗费更多的网络连接,BigPipe获取数据则与当前页面共用相同的网络连接,开销十分小。

完成BigPipe所涉及的细节比较多,比MVC中的直接渲染要复杂许多,建议在网站重要且数据请求时间较长的页面中使用。

----------------摘自《深入浅出node.js》(朴灵著)

About

nodejs-bigpipe-demo

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published