YUI Compressor是公认的最小化最好的工具,但闭包似乎可以更好。
发布于 2009-11-06 17:32:50
“无论你找到哪个最适合你的”,我认为这是目前的普遍答案- YUI已经存在的时间更长了,所以毫无疑问,它将是目前公认的最好的工具。而闭包对我们来说是新的--所以没有像YUI那样丰富的闭包经验。因此,我认为你不会仅仅因为闭包是新的,就根据人们的经验找到一个令人信服的理由来解释为什么要使用闭包。
这并不是说你不应该使用Closure....just,我的意思是,我不认为这个问题的答案是可用的,直到许多人使用了2并对它们进行了比较。
编辑:有几个早期的比较,说闭包确实带来了改进:http://blog.feedly.com/2009/11/06/google-closure-vs-yui-min/
http://news.ycombinator.com/item?id=924426
进一步编辑:值得关注关闭的问题列表:http://code.google.com/p/closure-compiler/issues/list
发布于 2009-11-14 19:15:51
从我所看到的比较来看,在最小化文件大小方面,闭包似乎是明显的赢家。本文使用三个流行的JS库(jQuery、Prototype、MooTools)来比较YUI Compressor和Closure Compiler之间的压缩效果:http://www.bloggingdeveloper.com/post/Closure-Compiler-vs-YUI-Compressor-Comparing-the-Javascript-Compression-Tools.aspx
Closure在每次测试中都处于领先地位,特别是在高级模式下,它“通过提供近60%的压缩,将代码大小最小化,比YUI Compressor多出约20-25%。”
发布于 2009-11-08 00:21:31
闭包可以在简单模式或高级模式中使用。简单模式对于大多数JavaScript代码来说是相当安全的,因为它只重命名函数中的局部变量以获得进一步的压缩。
高级模式更具侵略性。它将重命名对象文字中的键,如果它可以确定内联函数调用返回没有副作用的简单值,则重命名这些键。
例如:
function Foo()
{
return "hello";
}
alert(Foo());
翻译为:
alert("hello");
这段代码是:
var o = {First: "Mike", Last: "Koss"};
alert(o);
翻译为:
alert({a:"Mike",b:"Koss"});
您可以通过引用以下名称来防止高级模式更改对象文字中的键值:
{'First': "Mike", 'Last': "Koss"}
您可以在谷歌的交互式Closure Compiler site上尝试这些和其他示例。
https://stackoverflow.com/questions/1686428
复制相似问题