减少http请求数,有三个好处,即减少DNS请求所耗费的时间.、减少服务器压力、减少http请求头,因此这是我们前端性能优化的一个关键点。
对于我们前端来说,减少http请求数的一个途径就是合并js和css文件,称为combo,也称打包,也就是通过将多个文件压缩合并成一个文件,并缓存在服务器,然后一次性传输到客户端。这样可以有效地减少网站中所有页面的http请求数。
经研究发现,Google Code上有一个PHP的开源项目——minify,它可以合并、精简、Gzip压缩和缓存JavaScript和CSS文件。
Minify的使用主要有以下几个关键点:
1、将minify的min文件夹放入站点根目录下。
2、运行环境:Apache + PHP。
3、启用Apache的Mod Rewrite模块。
4、在min文件夹下新建.htaccess文件,并在其下添加如下Rewrite规则:
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^([a-z]=.*) index.php?$1 [L,NE]
</IfModule>
5、配置Minify,即编辑min/config.php文件,我们主要是设置缓存目录、缓存时间、可合并文件最大数量,其余的config.php文件中有叫详细的注释,恕不赘述。
6、使用方法:在我本地映射的域名下登录hoogle.fclub.cn/min,就可以将我们需要合并的文件一一添加,update后生成一串地址,如下图:
其中b参数为文件本地目录,f参数为js或css文件名。熟悉了后也可以不通过界面update,直接写出合并后的地址。
比如我们网站page_header.lbi中的前面8个js,现在这8个文件是放在本地,引入时直接用如下代码就相当与载入了8个js,http请求变成了一次。
<script type="text/javascript" src="/min/b=skins/js_new&f=jquery-1.4.2.js,utils.js,fclub.js,jquery.scrollTo.js,fclub_index.js,smoothAnchor.js,overlay.min.js,toolbox.expose.min.js,centerDiv.js"></script>
这样即可以让这8个js文件合并、精简,然后通过gzip压缩成一个文件.gz文件并缓存在服务器中相应的文件夹中。
7、删除min/builder/index.php 文件或修改其文件名。防止他人通过“hoogle.flcub.cn/min”登录,如需通过界面生成引入地址,则让index.php恢复。
8、当需要调试js的时候,可以开启debug模式,首先在配置文件config.php中启用debug,再在引入地址中加入&debug=1,如下所示:
<script type="text/javascript" src="/min/b=skins/js_new&f=jquery-1.4.2.js,utils.js,fclub.js,jquery.scrollTo.js,fclub_index.js,smoothAnchor.js,overlay.min.js,toolbox.expose.min.js,centerDiv.js&debug=1"></script>
这样即可像单独引入一样快速定位到某一js的某一行,进行调试。
Hoogle 2011-12-11
新浪微博: 欢迎关注。。。
IT博客大赛投票邀请: