用PHP控制用户浏览器缓存!

    你写的php程序是否高效?你是否会担心自己的程序太庞杂,执行速度很慢?你是否用过php动态生成图片?
   其实每种浏览器都有缓存策略,会暂时将每一个浏览过的文件缓存在一个特殊的文件夹里。我们就可以在用户重复提交页面请求的时候,告诉用户这个页面没有改变,可以调用缓存。 那我们怎么知道用户有没有这个页面的缓存数据呢? 其实浏览器在发送请求的时候会先发送http头,一般象这样: 

Date :  Sun ,   30  Jul  2006   09 : 18 : 11  GMT 
Content
- Type :  image / gif 
Last
- Modified :  Wed ,   19  Jul  2006   07 : 40 : 06  GMT 
ETag
:   " 8c55da8d6abc61:2327 "  
Content
- Length :   14757

其中Last-Modified: Wed, 19 Jul 2006 07:40:06 GMT
ETag: "8c55da8d6abc61:2327"
就是有关页面的缓存信息的。然后如果服务器返回的响应代码不是HTTP 200 (OK),而是 304的话,浏览器就会从缓存中读取数据。
    根据这个原理,我写了一个函数,这个函数可以用在不经常更新或者需要经常刷新的页面,可以大大减轻服务器的负担,因为它如果发现客户端有缓存,就向客户端发送一个304响应,然后停止程序的执行。

<? php 
cache(); 
echo   date ( " Y-m-d H:i:s " );  

function  cache() 
{
// author:Longbill ( www.longbill.cn ) 
        $etag   =   " eeee " ;   // 标记字符串,可以任意修改 
        if  ( $_SERVER [ ' HTTP_IF_NONE_MATCH ' ==   $etag
       { 
              
header ( ' Etag: ' . $etag , true , 304 ); 
              
exit
       } 
       
else   header ( ' Etag: ' . $etag ); 

?>


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值