程序员人生 网站导航

WordPress 启用 Gzip压缩css和js文件

栏目:WordPress时间:2013-11-01 16:12:49

前几天写了一篇合并css和js文件,加快浏览速度的文章,感觉上速度确实有点提高,而最后把速度仍然比较慢归因于国外服务器数据传输的速度慢 !后来在Storyday那里看到一篇wordpress提速的文章,压缩css文件和js来提速。其实很早看关于wp优化的文章的时候就看到过对css和js进行压缩来提速,但是一直都不以为然。因为我想css和js文件经过合并,然后使用CSS Tweak和Shrinksafe分别压缩css和js文件,就可以把两者的总大小缩减至16K+3K,再使用Gzip压缩意义不大。现在发现我彻底错了!

我合并了css和js文件,只是减少了HTTP Requests。因为每个HTTP Requests都有一定的延时,所以较少HTTP Requests数量自然可以缩短一定的访问时间。但是需要下载的首页代码的大小也是一个重要的因素。使用Web Page Analyzer查看了下本站首页,其实html代码仅仅9K,而css和js一起却将近20K,也就是说其实大部分的时间都在下载css和js文件,而且它们是在head里载入的,下载完成之前,只能看到空白页,这样影响的访问速度非常明显!所以对css和js文件进行压缩是非常有必要的!

尝试使用wordpress提速这篇文章里提供的Gzip压缩css和js文件的代码,但是发现这样会导致整个style.css不起作用!也不知道为什么?以前在我的blog里使用Storyday的cos-html-cache插件里读取cookies代码也会出现一些问题!难道是RPWM?

现在使用阅微堂提供的Gzip压缩代码如下:

<?php
$file="all.js";
header("Expires:".gmdate("D, d M Y H:i:s", time()+15360000)."GMT");
header("Cache-Control: max-age=315360000");
$mtime = filemtime($file);
$gmt_mtime = gmdate('D, d M Y H:i:s', $mtime) . ' GMT';
header("Last-Modified:" . $gmt_mtime);
$ext = array_pop(explode('.', $file));
switch ($ext){
case 'css':
header("Content-type: text/css");
break;
case 'js' :
header("Content-type: text/javascript");
break;
case 'gif':
header("Content-type: image/gif");
break;
case 'jpg':
header("Content-type: image/jpeg");
break;
case 'png':
header("Content-type: image/png");
break;
default:
header("Content-type: text/plain");
}
if(extension_loaded('zlib')){ob_start('ob_gzhandler');}
echo implode('', file($file));
if(extension_loaded('zlib')){
ob_end_flush();
}
?>
上面代码的将本站20K左右的css和js代码压缩到了6k以下,而且它不仅压缩代码,还要求浏览器端Cache这个文件,这样不用每次浏览都下载这些文件。如果你没有进行css和js合并(强烈建议合并)的话,那么在echo处添加多个css或者js文件即可。

现在的访问速度真正有了一个质的飞跃,首页的访问时间至少提高了4s

------分隔线----------------------------
------分隔线----------------------------

最新技术推荐