代码改变世界

【前端优化】使用YUI Compressor压缩JS和Css,批处理,右键,注册表,打包

2012-06-27 17:16  sniper007  阅读(363)  评论(0编辑  收藏  举报

对于大量使用JavaScript和CSS的AJAX应用来说,如果JavaScript和CSS大小很大,则传输到客户端的时间会很久,网站性能不佳。而压缩JavaScript和CSS是自然的事情(其中YUI Compressor的压缩率大约为50%

YUI Compressor - The Yahoo! JavaScript and CSS Compressor

YUI Compressor 压缩 JavaScript 的内容包括:

  1. 移除注释
  2. 移除额外的空格
  3. 细微优化
  4. 标识符替换(Identifier Replacement)


Download 下载地址 : http://yuilibrary.com/downloads/#yuicompressor
The YUI Compressor requires Java version >= 1.4. (机器需要Java 1.4以上的环境)所以需先下载JDK,配置环境。

---------------------------------------------华丽分割线---------------------------------------

一、Java环境配置

JDK环境变量配置的步骤如下:
1.我的电脑-->属性-->高级-->环境变量.
2.配置用户变量:
        a.新建 JAVA_HOME
             C:\Program Files\Java\j2sdk1.5.0 (JDK的安装路径)
        b.新建 PATH
             %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin
        c.新建 CLASSPATH
            .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar
3.测试环境变量配置是否成功:
   开始-->运行--〉CMD
   键盘敲入: JAVAC
        出现相应的命令,而不是出错信息,即表示配置成功!

---------------------------------------------华丽分割线---------------------------------------

二、使用YUI Compressor压缩JS和Css

常用示例(在cmd中执行)

 java -jar D:\yuicompressor-2.4.6\build\yuicompressor-2.4.6.jar --type js --charset UTF-8 D:\my.js -o D:\my-min.js 
 java -jar D:\yuicompressor-2.4.6\build\yuicompressor-2.4.6.jar --type css --charset UTF-8 D:\my.css -o D:\my-min.css 

–type指定要打包的文件类型,可选的有 js和css
–charset 指定字符集
-o 指定输出的文件名,如果不指定这个参数将会把压缩后的内容输出到命令行上
最后的my.js和my.css是要打包的debug版源文件

如果没有给定charset参数,则字符集默认是系统的,此处指定了UTF-8,更加你的实际需要修改。具体语法和其他参数参考:http://www.julienlecomte.net/yuicompressor/

使用YUI Compressor和DOS批处理脚本压缩JavaScript和CSS,加上IIS的GZIP,加起来能得到85%左右的压缩率。(其中YUI Compressor的压缩率大约为50%)也可以修改参数获得更多的压缩率。

---------------------------------------------华丽分割线---------------------------------------

三、制作批处理工具

三个文件:
批处理文件:yuicompressor.bat
注册表文件:yuicompressor.reg
压缩jar包:yuicompressor-2.4.6.jar

文件目录:D:\server\f2etools\yuicompressor

yuicompressor.bat批处理使用方法:
对整个文件夹右键点击【YUI-Compressor JS/CSS】批量压缩操作生成-min.css或-min.js,源文件不变,项目平时开发时引用源文件,上线前引用压缩文件测试正常后再上线。

yuicompressor.bat批处理文件代码:

复制代码
cd "%1"
for /f %%a in ('dir /b *-min.js') do call:ProcessDel: %%a
for /f %%a in ('dir /b *-min.css') do call:ProcessDel: %%a
for /f %%a in ('dir /b *.js') do call:ProcessCompress: %%a
for /f %%a in ('dir /b *.css') do call:ProcessCompress: %%a


:ProcessDel

IF NOT [%1]==[] call:DeleteMinFiles%1

GOTO:EOF

:ProcessCompress

IF NOT [%1]==[] call:CompressFiles%1

GOTO:EOF

:DeleteMinFiles

IF EXIST "%CD%\%1" del "%CD%\%1"

GOTO:EOF

:CompressFiles

java -jar D:
\server\f2etools\yuicompressor\yuicompressor-2.4.6.jar %1 -o %~n1-min%~x1

GOTO:EOF
复制代码


yuicompressor.reg注册表功能:选中文件夹后,右键,会多一个选项【YUI-Compressor JS/CSS
yuicompressor.reg注册表文件代码:

复制代码
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\shell\Compress JS
/CSS Files]
@
="YUI-Compressor JS/CSS"

[HKEY_CLASSES_ROOT\Directory\shell\Compress JS
/CSS Files\command]
@
="D:\\server\\f2etools\\yuicompressor\\yuicompressor.bat %1"
复制代码


下载地址:http://heiniu.me/tools/yuicompressor.rar

注意事项:请修改两个文件中的目录路径
批处理文件:yuicompressor.bat和注册表文件:yuicompressor.reg

---------------------------------------------华丽分割线---------------------------------------

四、打包压缩pack-all-min.js

文件如下:
批处理文件:pack-js.bat
需要打包的目录文件:pack-list.txt

pack-js.bat 代码:

for /f %%i in (packList.txt) do type %%i >> pack-all.js

java -jar D:
\server\f2etools\yuicompressor\yuicompressor-2.4.6.jar --type js --charset utf-8 pack-all.js -o pack-all-min.js

pack-list.txt

jquery.ui.datepicker.js
jquery
.ui.dialog.js
jquery
.ui.draggable.js
jquery
.ui.mouse.js

使用方法:
在当前js文件夹里放入这两个文件,平时开发用多个源文件,运行pack-js.bat后查看页面效果,上线前打包成一个压缩文件,测试无误后再上线。