BigPipe理解及用法

关于BigPipe在通过我看关于缓存的一些知识时碰见的一个技术,

该技术可以这么说,逐步式的加载页面,跟ajax渲染页面有些类似,首先来说说两者的区别,

      Ajax : 在页面加载完成后或加载中时,去渲染页面,造成给页面感觉上来说 是一块一块显示出来的,

                  但是请求的io就比较多了,请求一次然后拿回来渲染,  这个ajax也会影响百度收录~关于SEO的知识。

   BigPipe : 他的理念“你可以把一整个页面的加载分成一个一个的小块,逐步展示在页面”,比如说在做蛋糕的时候 并不是 我整个做完后交付给客户,而是我做好一块就交给客户一块,而每一块我可以自己定制,这样在客户体验上跟ajax差不多,但是在请求上实际就请求了一次而已, 下面我们就简单做下demo!

这只是我写的一个原生的小demo,BigPipe是facebook发明的技术,具体要我们应用到各种框架还是考自己摸索下~

ob_start(); 开始缓冲区

ob_flush();将php执行过的 发送给nginx或apache

flush();然后在发给客户展示

ob_end_clean(); 关闭内部缓冲区,清除内部缓冲区内容

ob_get_length()l; 获取内部缓存区长度

ob_end_flush();发送内部缓存内容到浏览器,并关闭内部缓冲区

 改buffer是有一个大小的,所以我在这填充下字符,以达到效果 才能有那种分割显示的效果!

我们首先需要把Nginx版本升级到了1.7.8。

加上   header('X-Accel-Buffering: no');

就可以不用关闭 buffer大小了,  就不用去填充字符了。

到这里就完毕了, 在付一个流程图~

php把数据请求好,暂存到php buffer,等缓存好了,在发送给tcp buffer 也就是nginx跟apache 这边处理完,发送给client browers 处理就可以了~

你可能感兴趣的:(php)