通过刷新 PHP 缓冲区来加速你的站点
2010-12-21 20:23
603 查看
在当前 PHP 版本的默认配置下,“输出缓冲(Output Buffering)”是被打开的。旧版本则不是这样,在旧版本的 PHP 中,字符串在每次被输出的时候(通过 echo 或 print 函数),都会触发一次发送到客户端浏览器的动作。
“输出缓冲”的引入,使得这一过程更加快速、更加高效。缓冲区实际上是在内存中开辟了一块区域,可以认为是内存中的一个大的字符串。当程序中有字符要输出的时候,会把要输出的内容附加到该缓冲区中,用来替代旧版本 PHP 中每次都直接输出到浏览器的方式。当缓冲区被“刷新”的时候,再统一输入到用户浏览器。以下几种情况下,会引起缓冲区的“刷新”操作:
1、PHP 程序执行完毕;
2、缓存区的大小超过了 php.ini 配置文件中设置的 output_buffering 值;
3、flush() 或者 ob_flush() 函数被调用的时候。
在实际的产品环境下,我们可以通过在 head 标签后马上刷新 PHP 的缓冲区,来达到加速你的站点的目的,示例代码如下:
(如果你的站点在使用 WordPress,你应该把类似的代码放在你的 WordPress 模板的 header.php 文件中。)
接下来来解释上述代码的作用:
当浏览器接收到页面 head 部分的代码的时候,就可以开始下载 head 段中的包括的资源了,类似 CSS 文件、站点收藏图标(Favicon)等。这些内容的下载可以与浏览器接受 body 段的内容时的时间同步进行。
具体能加速多少,需要因地制宜。这取决于很多客观条件,包括服务端的响应速度、你的页面大小、你的 CSS 文件大小和数量、浏览器是否有本地缓存等等。因素固然有很多,不过这样一个小小的优化,就可以显而易见的为你的站点加速,何乐而不为呢?
我很希望各位把这个小技巧运用在自己网站上,并跟踪所产生的实际效果。期待大家的反馈。
原文作者:Craig Buckler ,原文地址:http://blogs.sitepoint.com/2010/10/29/faster-web-pages-php-buffer-flush/
[本文摘自:翻译:avenger]
“输出缓冲”的引入,使得这一过程更加快速、更加高效。缓冲区实际上是在内存中开辟了一块区域,可以认为是内存中的一个大的字符串。当程序中有字符要输出的时候,会把要输出的内容附加到该缓冲区中,用来替代旧版本 PHP 中每次都直接输出到浏览器的方式。当缓冲区被“刷新”的时候,再统一输入到用户浏览器。以下几种情况下,会引起缓冲区的“刷新”操作:
1、PHP 程序执行完毕;
2、缓存区的大小超过了 php.ini 配置文件中设置的 output_buffering 值;
3、flush() 或者 ob_flush() 函数被调用的时候。
在实际的产品环境下,我们可以通过在 head 标签后马上刷新 PHP 的缓冲区,来达到加速你的站点的目的,示例代码如下:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <title>Buffer flushing in action</title> <link rel="stylesheet" type="text/css" href="styles.css" /> <link rel="shortcut icon" href="favicon.ico" /> </head> <?php // 这里强制刷新缓冲区 flush(); ?> <body> ...
(如果你的站点在使用 WordPress,你应该把类似的代码放在你的 WordPress 模板的 header.php 文件中。)
接下来来解释上述代码的作用:
当浏览器接收到页面 head 部分的代码的时候,就可以开始下载 head 段中的包括的资源了,类似 CSS 文件、站点收藏图标(Favicon)等。这些内容的下载可以与浏览器接受 body 段的内容时的时间同步进行。
具体能加速多少,需要因地制宜。这取决于很多客观条件,包括服务端的响应速度、你的页面大小、你的 CSS 文件大小和数量、浏览器是否有本地缓存等等。因素固然有很多,不过这样一个小小的优化,就可以显而易见的为你的站点加速,何乐而不为呢?
我很希望各位把这个小技巧运用在自己网站上,并跟踪所产生的实际效果。期待大家的反馈。
原文作者:Craig Buckler ,原文地址:http://blogs.sitepoint.com/2010/10/29/faster-web-pages-php-buffer-flush/
[本文摘自:翻译:avenger]
相关文章推荐
- 刷新PHP缓冲区为你的站点加速
- 他山之石-刷新PHP缓冲区为你的站点加速
- 刷新PHP缓冲区为你的站点加速
- PHP——Apache虚拟主机配置,通过域名访问本地站点
- PHP通过缓存页面加速动态内容生成(原理)
- php导出excel不断刷新缓冲区的思路(转)
- 通过PHP控制缓冲区来实现的应用
- 【share】PHP站点用Squid再次疯狂加速你的WEB
- php通过iframe实现局部刷新
- 使用Xcache加速你的PHP站点
- 通过Java代码打开浏览器,本地文件目录以及ftp站点
- 通过配置php来屏蔽PHP错误
- php中递归无限分类之-通过子栏目查找父栏目
- 通过php获取用户微信openid
- php通过Chianz.com获取IP地址与地区的方法
- nginx+fastcgi php 使用file_get_contents、curl、fopen读取localhost本站点.php异常的情况
- 超强IIS站点工具一键设置PHP,支持多个PHP同时运行
- php防止刷新(流量攻击)的一段代码
- PHP操作HBASE(通过thrift)
- 通过PHP简单实例介绍文件上传