通过gzip来压缩js文件

文章分类:misc  查看次数:582 + 107

为什么要压缩文件?很明显,压缩后,文件个头小了,下载就快了,网页也就能在更短的时间内呈现在我们的面前,正常情况下,的压缩比能达到3:1左右,以-all.为例,源文件大小:463k,经过压缩后的个头为125k,几乎到了4:1。

代码:

<?php
    //参数可以是数组或者字符串
    gzip_file("-all.");

    function gzip_file($file_s){
        if(!is_array($file_s)){
            $files[] = $file_s;
        }
        else{
            $files = $file_s;
        }
    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);
    ob_start('ob_gzhandler');
    foreach($files as $file){
    $ = array_pop(explode('.', $file));
    switch ($){
    case 'css':
     header("Content-type: text/css");
     break;
    case '' :
     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");
    }
    echo implode('', file($file));
    }
    ob_end_flush();
}
?>
 

假设将上面的代码存储为-all.php
那么引用的时候只需

include("-all.php")

就能实现对-all.的压缩,当然前提是服务端支持zlib。

参考文章:
如何快速呈现我们的文章
gzip压缩js文件

题外话:ext js是个不错的框架,在UI方面非常漂亮,效果也很出色,但就是的个头太大,所以用来压缩一下,个头就不会那么恐怖了。

有人说,现将用软件压缩一下,然后再用压缩一下,这样文件的个头就能最小,其实不然,我做了一个实验,将-all.用软件压缩后变成199k,确实压缩了不少,但是再用压缩的话,压缩比就很小了,结果是149k。

评论

发表评论