Javascript压缩后放在我们的网站上,能优化读取速度,就像我们压缩图片格式一样。降低javascript脚本代码的容量将使得你的站点提高载入速度。同时访问者也得到更好的体验。

而javascript压缩有一般两种情况,用jquery举例:

jquery-1.4.2.js                       这个是原版, 用于平时开发的时候,或者自己分析源码用。

jquery-1.4.2.min.js                   min压缩,当服务器没有开启gzip的时候用。

jquery-1.4.2.pack.js                  pack压缩,通过eval处理打包而成,开启gzip的时候读取速度比较快。

而现在我们需要将javascript文件压缩,我将用到如下两个工具 [YUI Compressor][1] 和 Dean Edward’s[/packer/][2]。

准备阶段:

  1. 准备一个文件夹用于操作: D:\www\projects\
  2. [下载 YUI Compressor][3]. 目前最新的是V2.4.6。
  3. 提取出”yuicompressor-2.4.6/build/yuicompressor-2.4.6.jar”, 更名为”yuicompressor.jar”,移至”D:\www\projects\”, 这个jar包用于生成min文件。前提是要安装java至少1.4,这个官方有说明。
  4. [下载 rhino1.7R3.zip][4].
  5. 提取出”rhino1_7R3/js.jar”, 更名为”jspacker.jar”,移至”D:\www\projects\”, 这个jar包用于把min文件打包成pack文件。
  6. 下载 [packer.js][5] (David McNab写的打包JS文件). 同样拷贝到”D:\www\projects\”

写入注册表compressor.reg

为了更加方便,我们设置当选择js文件右键时候就会出现Compressor JS选项,点击将执行一个我们写的批处理,让它自动打包。

[][6]

compressor.reg 源代码,根据需求设置

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\JSFile\shell\Compress JS]
@="Compressor JS"

[HKEY_CLASSES_ROOT\JSFile\shell\Compress JS\Command]
@="D:\\www\\projects\\compressor.bat %1"

### 创建一个批处理compressor.bat

这个批处理是把当前文件先打包成min格式,再压缩成pack格式

[][7]

compressor.bat 源代码,根据需求设置

@echo off

java -jar D:\www\projects\yuicompressor.jar %1 -o %~n1.min%~x1
java -jar D:\www\projects\jspacker.jar D:\www\projects\packer.js %~n1.min%~x1 %~n1.pack%~x1


当然之前在网上看到很多批处理能把文件夹内所有的文件一起打包,个人觉得那个太智能了,遍历的文件夹也很多,导致我之前.svn文件夹下的文件也被打包了,很是郁闷,后来还是决定用单个文件的形式,毕竟我打包的数目也不多。

[][8]  
一共用的文件差不多是5个,点此下载:[Automate\_JavaScript\_compression][9]

 [1]: http://www.julienlecomte.net/blog/2007/08/11/
 [2]: http://dean.edwards.name/packer/
 [3]: http://www.julienlecomte.net/yuicompressor/
 [4]: http://www.mozilla.org/rhino/download.html
 [5]: http://johannburkard.de/resources/Johann/packer.js
 [6]: http://crackedzone.com/blog/wp-content/uploads/2011/09/packer1.jpg
 [7]: http://crackedzone.com/blog/wp-content/uploads/2011/09/packer2.jpg
 [8]: http://crackedzone.com/blog/wp-content/uploads/2011/09/packer3.jpg
 [9]: http://crackedzone.com/blog/wp-content/uploads/2011/09/Automate_JavaScript_compression.zip

Nginx 自动禁止爬虫IP采集

### 背景最近我们有一个公开服务提供给客户查询关键词的热度值,由于这个API做在官方网站上,自然没有用户登陆,也没有很高查询成本,所以设计上没有任何鉴权无法进行身份认定,于是就被一个爬虫开了超高并发请求,直接后端的AWS Tomcat CPU被用尽,导致无法响应。爬虫显然...… Continue reading

Redis原子性事务Lua应用

Published on June 28, 2020