关于我们┊AboutMe

昵称:Hopol(■童■)

联系:QQ:18883

邮箱:info(at)18883.com

主页:www.18883.com

手机浏览 日志归档 RSS 2.0 订阅
Register | Login

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

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

DateSun30 Jul 2006 09:18:11 GMT 
Content
-Typeimage/gif 
Last
-ModifiedWed19 Jul 2006 07:40:06 GMT 
ETag
"8c55da8d6abc61:2327" 
Content-Length14757

其中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.18883.com ) 
         
$etag "eeee";     //标记字符串,可以任意修改 
         
if ($_SERVER['HTTP_IF_NONE_MATCH'] == $etag
         { 
                     
header('Etag:'.$etag,true,304); 
                     exit; 
         } 
         else 
header('Etag:'.$etag); 

?>

Tags: php, 缓存, 浏览器

« 上一篇 | 下一篇 »

只显示10条记录相关文章

dede5.1 UTF8商业版 (浏览: 226, 评论: 1)
dede5.1 BGK商业版 (浏览: 249, 评论: 0)
MyPic图片管理系统 (浏览: 159, 评论: 0)
PHP 美女写真 Cms (浏览: 206, 评论: 0)
Google translator API ( PHP 5 class ) (浏览: 190, 评论: 0)
MyPic v1.0 (MyPic图片管理系统) (浏览: 278, 评论: 0)
PHP在图片上写上中文[备份] (浏览: 201, 评论: 0)
DEDECMS 模板收藏 【极限资讯网】 (浏览: 493, 评论: 0)
DEDECMS 模板收藏 【CK女性站】 (浏览: 491, 评论: 0)
DEDECMS 模板收藏 【淡蓝色完整风格V1.1】 (浏览: 498, 评论: 0)

发表评论