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

 更新时间:2015年10月10日 16:07:36   投稿:lijiao  
这篇文章主要介绍了通过刷新PHP缓冲区可以加速你的站点,非常实用的小技巧,需要的朋友可以参考下

在当前 PHP 版本的默认配置下,“输出缓冲(Output Buffering)”是被打开的。旧版本则不是这样,在旧版本的 PHP 中,字符串在每次被输出的时候(通过 echo 或 print 函数),都会触发一次发送到客户端浏览器的动作。
“输出缓冲”的引入,使得这一过程更加快速、更加高效。缓冲区实际上是在内存中开辟了一块区域,可以认为是内存中的一个大的字符串。当程序中有字符要输出的时候,会把要输出的内容附加到该缓冲区中,用来替代旧版本 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> 
... 

接下来来解释上述代码的作用:
当浏览器接收到页面 head 部分的代码的时候,就可以开始下载 head 段中的包括的资源了,类似 CSS 文件、站点收藏图标(Favicon)等。这些内容的下载可以与浏览器接受 body 段的内容时的时间同步进行。
具体能加速多少,需要因地制宜。这取决于很多客观条件,包括服务端的响应速度、你的页面大小、你的 CSS 文件大小和数量、浏览器是否有本地缓存等等。因素固然有很多,不过这样一个小小的优化,就可以显而易见的为你的站点加速,何乐而不为呢?

我很希望各位把这个小技巧运用在自己网站上,并跟踪所产生的实际效果。期待大家的反馈。

相关文章

  • php Mysql日期和时间函数集合

    php Mysql日期和时间函数集合

    本文是脚本之家小编给大家收集的比较全的Mysql日期和mysql时间函数,感兴趣的朋友跟随一起看看吧
    2007-11-11
  • PHP实现的线索二叉树及二叉树遍历方法详解

    PHP实现的线索二叉树及二叉树遍历方法详解

    这篇文章主要介绍了PHP实现的线索二叉树及二叉树遍历方法,结合实例形式较为详细的分析了线索二叉树的定义,创建,判断与遍历等技巧,需要的朋友可以参考下
    2016-04-04
  • php使用sql数据库 获取字段问题介绍

    php使用sql数据库 获取字段问题介绍

    由于sql server中,ntext和nvarchar字段是用unicode编码存储内容的,因此php通过mssql扩展读取带ntext和nvarchar类型字段的时候会抱错
    2013-08-08
  • PHP实现生成推广海报的方法详解

    PHP实现生成推广海报的方法详解

    这篇文章主要介绍了PHP实现生成推广海报的方法,结合具体实例形式详细分析了php图片生成的相关操作技巧与相关注意事项,需要的朋友可以参考下
    2018-03-03
  • php文件上传后端处理小技巧

    php文件上传后端处理小技巧

    这篇文章主要为大家详细介绍了php文件上传后端处理小技巧,帮助大家更好的进行文件上传操作,感兴趣的朋友可以参考一下
    2016-05-05
  • php数组随机排序实现方法

    php数组随机排序实现方法

    这篇文章主要介绍了php数组随机排序实现方法,涉及php数组随机排序函数shuffle的相关使用技巧,需要的朋友可以参考下
    2015-06-06
  • PHP基于非递归算法实现先序、中序及后序遍历二叉树操作示例

    PHP基于非递归算法实现先序、中序及后序遍历二叉树操作示例

    这篇文章主要介绍了PHP基于非递归算法实现先序、中序及后序遍历二叉树操作,结合实例形式分析了php采用非递归算法对二叉树进行先序、中序及后序遍历操作的原理与具体实现技巧,需要的朋友可以参考下
    2018-01-01
  • PHP结构型模式之外观模式

    PHP结构型模式之外观模式

    这篇文章主要介绍了PHP结构型模式之外观模式,外观模式是一种结构型模式,它提供了一个简单的接口,隐藏了系统的复杂性,为客户端提供了一个简单的入口点
    2023-04-04
  • PHP批斗大会之缺失的异常详解

    PHP批斗大会之缺失的异常详解

    这篇文章主要给大家介绍了关于PHP批斗大会之缺失的异常的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用PHP具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-07-07
  • 实例简介PHP的一些高级面向对象编程的特性

    实例简介PHP的一些高级面向对象编程的特性

    这篇文章主要以实例简单介绍了PHP的一些高级面向对象编程的特性,包括在Java等OOP语言中所经常见到的接口和抽象类等,需要的朋友可以参考下
    2015-11-11

最新评论