用js压缩工具压缩。
比较常见的js压缩工具有
avascript代码压缩工具:
Packer:压缩率很多,操作方便。.net版,需要安装.net框架!
下载地址:http://deanedwards.googlecode.com/svn/trunk/download/packer2.net.zipjsMinGUI:这个很少用,大家可以试试
下载及介绍:http://jsdoc.cn/archive/show.do?archive.archiveId=8ESC:非EXE文件,使用windows的WSF进行压缩,压缩率还可以
下载及介绍:http://www.saltstorm.net/depo/esc/?pod=jsJAS:压缩率相当高,但需要java运行时支持。
下载及介绍:http://www.xidea.org/project/jsa/
比较常见的js压缩工具有
avascript代码压缩工具:
Packer:压缩率很多,操作方便。.net版,需要安装.net框架!
下载地址:http://deanedwards.googlecode.com/svn/trunk/download/packer2.net.zipjsMinGUI:这个很少用,大家可以试试
下载及介绍:http://jsdoc.cn/archive/show.do?archive.archiveId=8ESC:非EXE文件,使用windows的WSF进行压缩,压缩率还可以
下载及介绍:http://www.saltstorm.net/depo/esc/?pod=jsJAS:压缩率相当高,但需要java运行时支持。
下载及介绍:http://www.xidea.org/project/jsa/
解决方案 »
- 谁帮我看下这段代码的意思
- 遇到一个问题,在ff下,焦点页面切换窗口看别的页面,一段时间返回焦点页面,图片会不断闪动。。
- 急求……有没有兼容IE6,7,8的网页左右两边随滚动条移动的浮动广告效果啊?
- 请大家帮忙看看,这个函数有没有什么问题?运行时总说缺少对象!
- 请教关于字符串左右两端空格处理方法中的一些代码问题
- extjs4的grid不显示数据,看了一天了,和视频里写的一样,就是不出来
- 一个关于LOCATION很怪且很有意思的问题
- DOCTYPE 声明会导致javascipt无法正常执行?????
- 求代码,得到这种格式的日期时间,并且会跳动
- 请问用javascript怎么显示客户端的IP地址?谢谢
- 这两个语句有什么区别???????
- clearIntervar()的怪问题
像JQuery中的jquery.lite.js的那样,使用记事本打开的时候是没有格式的,当使用DW打开的时候就出现格式了!~
因为它首先要通过从服务器端下载源代码,然后再由客户端的浏览器执行。因此,Javascript代码的速度被分割成两部分:下载时间(取决于 文件的大小)和执行速度(取决于代码算法)。这篇主要讨论的是 Javascript的下载时间优化,也就是如何尽可能的缩小 Javascript 文 件本身的容量。
在这里要记住的一个数字是 1160,这是能放入单个 TCP/IP 包中的字节数。所以,最好的期望值是能将每个 Javascript 文件保持在 1160 字节一下,以获取最优的下载时间。 删除注释 这似乎是是废话,不过很多开发人员都会忘记。在实际生产环境中,脚本中的注释都应该删除。在开发期间注释相当的重要,它可以帮助团队理解代码。但在实际生产环境中,注释会明显使脚本文件体积变大。删除它们并不会给脚本实际运行带来任何的影响。 删除制表符和空格 具有良好缩进和空格的代码通常都具有良好的可读性。但是浏览器并不需要这些额外的制表符和空格,所以最好删除它们。当然也不要忘记函数参数,赋值语句以及比较操作之间的空格。比如 function showMeTheMoney(money)
{
if (!money) {
return false;
} else {
...
}
}可以优化成 function showMeTheMoney(money){if(!money){reutrn false;}else{...}} 这样可以减少部分容量。 删除所有的换行 有许多关于在 Javascript 中换行应该存在的思考,但底线都是换行要增加代码的可读性。但过分的换行也会造成代码体积的增加。
可能处于某种原因而不能删除换行符,这样则要保证文件是 Unix 格式的。因为 Windows、Mac 格式的换行符用两个字符表示换行;Unix 仅用一个。所以将文件转换成 Unix 格式也可以节约一些字节数。 替换变量名 这可能是最无聊的一种做法,这通常不是手工完成的。毕竟变量的名称对解释器来说毫无意义(只是对开发人员来说会更友好一些),在生产环境中将描述性的变量名替换成更简单、更短的名称也可以缩减一部分体积。比如上述的代码可以缩减成: function sm(m){if(!m){reutrn false;}else{...}} 这样虽然看起来会比较的头痛,不过实际之行效果是一样的。 使用工具 实际使用上述的方法可能会有一些困难,幸好有现成的外部工具能完成这些步骤。下面简单的介绍几个: ECMAScript Cruncher:[url=http://saltstorm.net/depo/esc/]http://saltstorm.net/depo/esc/
JSMin(The JavaScript Minifier): [url=http: //www.crockford.com/javascript/jsmin.html]http://www.crockford.com/javascript/jsmin.html
Online JavaScript Compressor.:[url=http://dean.edwards.name/packer/]http://dean.edwards.name/packer/
我猜你会有兴趣看下[url=http://jindw.spaces.live.com/blog/cns%214D0B98F5F0C51177%21114.entry]这篇文章。 其他方法 替换布尔值 对于比较来说,true 就等于 1,false 就等于 0 。因此,脚本包含的字面量 true 都可以用 1 来替换,而 false 可以用 0 来替换。对于 true 节省了 3 个字节,而 false 则节省了 4 个字节。 缩短否定检测 代码中常常会出现检测某个值是否有效的语句。而大部分条件非的判断就是判断某个变量是否为 undefined、null 或者 false,比如: if (myValue != undefined) {
// ...
} if (myValue != null) {
// ...
} if (myValue != false) {
// ...
} 这些虽然都正确,但用逻辑非操作符也可以有同样的效果: if (!myValue) {
// ...
} 这样的替换也可以节省一部分字节。 使用数组和对象字面量 这个比较好理解,比如一下两行是相同的: var myArray = new Array;
var myArray = []; 然而第二行比第一行短很多,而且也能非常容易的理解。类似的还有对象声明:
var myObject = new Object;
var myObject = {}; 举个例子,比如下面的语句: var mySite = new Object;
mySite.author = "feelinglucky";
mySite.location = "http://www.gracecode.com"; 这样写也可以非常容易的理解,并且短很多: var mySite = {author:"feeinglucky", location:"http://www.gracecode.com"};