当前位置:首页 > web性能优化 > 正文

web前端页面性能优化之minify应用

使用yslow中,其中第一条最关键的,就是make fewer HTTP requests,就是尽量让请求数量减少;

对于一个web应用,js和css等静态文件是增加请求数的源头,如何减少这里静态文件的请求书,是优化的重点;

公司有同事使用minify,google的一款js/css压缩工具,支持静态文件压缩;

使用它可以方便的压缩js和css,让js和css分别压缩为一个文件;

其中涉及到压缩,在minify.php文件中有个标示:‘gzencode’方法;

这个是zlib模块中需要用到的方法,目的就是压缩字符串;

如果在php编译的过程中,使用过–with-zlib,比如:


'./configure' '--prefix=/usr/local/services/php-5.3.25' '--with-apxs2=/usr/local/httpd/bin/apxs' '--with-mysql=/usr/local/mysql' '--with-mysqli=/usr/local/mysql/bin/mysql_config' '--with-gd' '--with-jpeg-dir=/usr/local' '--enable-gd-native-ttf' '--with-freetype-dir=/usr' '--with-zlib' '--enable-mbstring=cn' '--with-pdo-mysql=/usr/local/mysql' '--with-curl' '--enable-bcmath'

那么就支持zlib模块对应的功能;否则使用phpinfo()查看配置的时候,
会提示:
gzip compression disabled (install ext/zlib)

这里可以看出是因为zlib没有支持,那么如何支持呢?

方法如下:


find / -name zlib --先找到zlib模块
cp /data/home/ieod/software/php-5.3.10/ext/zlib/ /tmp/zlib
cd /tmp/zlib
mv config0.m4 config.m4 --可能会提示config.m4文件缺失
/data/home/user00/app/php/bin/phpize
./configure --with-php-config=/data/home/user00/app/php/bin/php-config
make install 提示Libraries have been installed in: /tmp/zlib/modules 成功后
echo "extension=zlib.so" >> /data/home/user00/app/php/lib/php.ini

重新使用phpinfo()可以看到如下支持:


zlib
ZLib Support enabled
Stream Wrapper support compress.zlib://
Stream Filter support zlib.inflate, zlib.deflate
Compiled Version 1.2.3
Linked Version 1.2.3

再次请求js或者css的时候:
响应头信息中就会出现:
Content-Encoding gzip

数据进行了压缩,请求量有明显降低;

优化后的代码

这样Yslow的得分达到96分,逐渐完美了!

注意对于缓存的问题,为了防止同一台服务器上面的文件污染,可以考虑将一些缓存设置添加到项目的.htaccess文件中;

2 条评论

  1. 板凳2014-03-01 下午3:31
    乐享资源网

    初次拜访,表示极大的支持

  2. 沙发2014-03-26 下午9:56
    jackqqxu

    某些框架可能用到了.htaccess,需要使用跳转,那么min也面临同样的问题,放在比如cake框架的webroot/目录下面,修改.htaccess,

    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^[^/min/]$ index.php [QSA,L]

    意思是说不是以/min开头的url地址,都应该通过index.php进行处理;

发表评论

您必须 [ 登录 ] 才能发表留言!