光辉飞翔

导航

< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8
统计
 

最小化(minify)js文件博客分类:

http://developer.yahoo.com/performance/rules.html#minify

中介绍了有两种最小化js文件的工具。

一种是JSMin http://crockford.com/javascript/jsmin 另一种是 YUI Compressor http://developer.yahoo.com/yui/compressor/
1.JSMin使用很简单 它提供一个在MS-Dos下能直接运行的.exe程序 jsmin.exe 直接运行命令即可:

jsmin jsmin <Ajax.js> ajaxmin.js   Ajax.js是没有最小化的js文件,当中包含很多空格与换行符   ajaxmin.js是被jsmin最小化过的文件 2.首先下载最新版的YUI Compressor

我下载的是2.3.6版 它提供的是Jar架包。 我们也有两种方法使用它。 1)如其\doc\README所说的直接用:   java -jar yuicompressor-x.y.z.jar [options] [input file]   java -jar yuicom*.jar --type js -o ajaxmin.js Ajax.js 2)用ant来操作:   新建一个Java Project :YUI_Compressor   新建一个build.xml

 

Xml代码 复制代码 收藏代码
  1. <projectname="YUI_Compressor"default="css.minify"basedir="./.."> 
  2.         <propertyname="project.dir"value="${basedir}"> 
  3.         </property> 
  4.         <propertyname="project.src.dir"value="${project.dir}\src"> 
  5.         </property> 
  6.         <!-- 最小化css文件 --> 
  7.         <targetname="css.minify"> 
  8.             <javajar="${project.dir}/lib/yuicompressor-2.3.6.jar"fork="true"failonerror="true"> 
  9.                 <argline="${project.src.dir}/index.css"/> 
  10.                 <argline="-o ${project.src.dir}/indexmin.css"/> 
  11.             </java> 
  12.         </target> 
  13.          
  14.         <!-- 最小化js文件 --> 
  15.         <targetname="js.minify"> 
  16.             <javajar="${project.dir}/lib/yuicompressor-2.3.6.jar"fork="true"failonerror="true"> 
  17.                 <argline="${project.src.dir}/Ajax.js"/> 
  18.                 <argline="-o ${project.src.dir}/ajaxmin.js"/> 
  19.             </java> 
  20.         </target> 
  21.         <targetname="css.concat"> 
  22.             <concatdestfile="${war.dir}/css/my-concat.css"> 
  23.                 <filelistdir="${war.dir}/css/"files="screen.css, specialA.css, spcialB.css"/> 
  24.             </concat> 
  25.         </target> 
  26.         <targetname="js.concat"> 
  27.             <concatdestfile="${war.dir}/script/my-concat.js"> 
  28.                 <filelistdir="${war.dir}/script/jquery"files="jquery.js, jqueryPlugins.js"/> 
  29.                 <filelistdir="${war.dir}/script/"files="remote.js, ..., my.js"/> 
  30.             </concat> 
  31.         </target> 
  32.     </project> 
<project name="YUI_Compressor" default="css.minify" basedir="./..">
		<property name="project.dir" value="${basedir}">
		</property>
		<property name="project.src.dir" value="${project.dir}\src">
		</property>
		<!-- 最小化css文件 -->
		<target name="css.minify">
			<java jar="${project.dir}/lib/yuicompressor-2.3.6.jar" fork="true" failonerror="true">
				<arg line="${project.src.dir}/index.css" />
				<arg line="-o ${project.src.dir}/indexmin.css" />
			</java>
		</target>
		
		<!-- 最小化js文件 -->
		<target name="js.minify">
			<java jar="${project.dir}/lib/yuicompressor-2.3.6.jar" fork="true" failonerror="true">
				<arg line="${project.src.dir}/Ajax.js" />
				<arg line="-o ${project.src.dir}/ajaxmin.js" />
			</java>
		</target>
		<target name="css.concat">
			<concat destfile="${war.dir}/css/my-concat.css">
				<filelist dir="${war.dir}/css/" files="screen.css, specialA.css, spcialB.css" />
			</concat>
		</target>
		<target name="js.concat">
			<concat destfile="${war.dir}/script/my-concat.js">
				<filelist dir="${war.dir}/script/jquery" files="jquery.js, jqueryPlugins.js" />
				<filelist dir="${war.dir}/script/" files="remote.js, ..., my.js" />
			</concat>
		</target>
	</project>

运行相应的target即可

 

最后创建出来的文件目录为:     │  .classpath     │  .project     │  list.txt     │      ├─bin     │      Ajax.js     │      ajaxmin.js     │      build.xml     │      index.css     │      indexmin.css     │      yuicompressor-2.3.6.jar     │          ├─lib     │      yuicompressor-2.3.6.jar     │          └─src             Ajax.js             ajaxmin.js             build.xml             index.css             indexmin.css

 

参考文档:

http://developer.yahoo.com/yui/compressor/

http://www.seamframework.org/Community/SeamPerformanceSomeIdeas

posted on   光辉飞翔  阅读(1845)  评论(2编辑  收藏  举报
编辑推荐:
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 如何使用 Uni-app 实现视频聊天(源码,支持安卓、iOS)
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
 
点击右上角即可分享
微信分享提示