刷新 PHP 缓冲区 加速你的站点

php相关 / 2011年02月13日 10时03分 / 15064人浏览
原文链接:http://blogs.sitepoint.com/2010/10/29/faster-web-pages-php-buffer-flush/ 缓冲区实际上是在内存中开辟了一块区域,可以认为是内存中的一个大的字符串。当程序中有字符要输出的时候,会把要输出的内容附加到该缓冲区中,用来替代旧版本 PHP 中每次都直接输出到浏览器的方式。当缓冲区被“刷新”的时候,再统一输入到用户浏览器。以下几种情况下,会引起缓冲区的“刷新”操作:
  1. PHP 程序执行完毕;
  2. 缓存区的大小超过了 php.ini 配置文件中设置的 output_buffering 值;
  3. flush() 或者 ob_flush() 函数被调用的时候。
我们可以通过在 head 标签后马上刷新 PHP 的缓冲区,来达到加速你的站点的目的,示例代码如下:




Buffer flushing in action





...
对于WordPress,可以类似的代码放在 WordPress 模板的 header.php 文件中 上述代码的作用: 当浏览器接收到页面 head 部分的代码的时候,就可以开始下载 head 段中的包括的资源了,类似 CSS 文件、站点收藏图标(Favicon)等。这些内容的下载可以与浏览器接受 body 段的内容时的时间同步进行。 具体能加速多少,需要因地制宜。这取决于很多客观条件,包括服务端的响应速度、你的页面大小、你的 CSS 文件大小和数量、浏览器是否有本地缓存等等。