有效的使用浏览器缓存,首先可以提升网页的访问速度,加强用户体验,其次减少页面输出节约服务器带宽。

本文主要讲如何通过apache的mod_expires,或者PHP代码来杠杆(调节)浏览器缓存,即leverage browser caching。

主要参数有:Last-Modified, Cache-Control, max-age, expiration date等。方法很简单

方法一、
设置APACHE,启用mod_expires,并在配置文件中增加以下:

ExpiresActive On
ExpiresDefault "access plus 12 hours"
ExpiresByType text/html "access plus 3 days"
ExpiresByType text/plain "access plus 3 days"
ExpiresByType text/css "access plus 3 days"
ExpiresByType application/javascript "access plus 3 days"
ExpiresByType application/x-http-php "access plus 5 minutes"
ExpiresByType image/gif "access plus 30 days"
ExpiresByType image/png "access plus 30 days"
ExpiresByType image/jpeg "access plus 30 days"
ExpiresByType image/x-icon "access plus 30 days"


关于mod_expires的启用、各项参数释义请自行google,这里不能阐述。
方法二、
适用于不能、不方便配置APACHE的PHP用户,优点是使用简单,缺点仅对PHP页面有效果,对CSS、JS及图片没有效果。

/**
*设置浏览器缓存
*@param int $cachetime
**/
function LeverageBrowserCaching($cachetime = 60) {
if ($_SERVER['HTTP_IF_MODIFIED_SINCE'] != NULL && ((strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']))+$cachetime) > time()) {
header( "HTTP/1.1 304 Not Modified" );
exit;
}
else {
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: max-age=" . $cachetime);
}
}

将以上函数放在程序的公用文件当中,在PHP程序的开头调用些文件。注意调用之前不能有任何输出。

END

Today on history:

  1. 2009:  如何通过USB磁盘安装Windows7/Vista(0)
  2. 2008:  如何设置小灵通的呼叫转移(0)