是否有人针对Google新发布的Closure编译器编译了jQuery?
据报道,代码大小可以节省大量资金。我很好奇如果用它编译jQuery会带来什么好处。
答案 0 :(得分:26)
John Resig在尝试编译每晚jQuery 1.4时报告了一个关于递归函数的错误,所以有一些问题需要解决。我不会使用使用Closure Compiler编译的jQuery而不确保它通过jQuery测试平台。
http://code.google.com/p/closure-compiler/issues/detail?id=1&can=1#c2
答案 1 :(得分:11)
我尝试使用jQuery jQuery 1.3.2
jQuery-1.3.2.min.js 57254 Bytes
jQuery closure compiler 49730 Bytes
-----------------------------------
Reduced by 7524 Bytes
Saved 13.31% off the original size
Saved 10.87% off the gzipped size
获得~7KB
但它也报告了15个警告,我没有测试它是否仍然有效
答案 2 :(得分:7)
闭包编译器会删除您实际不使用的任何代码。典型的网页只使用一小部分jQuery函数,因此最大的好处将来自编译代码和完整版本的jQuery。
答案 3 :(得分:6)
关闭ADVANCED_OPTIMIZATIONS:
启用ADVANCED_OPTIMIZATIONS:它无法正常工作。启用了ADVANCED_OPTIMIZATIONS并且我可以找到导出导出的所有内容...它仍然不能正常工作,并且代码已经达到53466字节(并且18785 gzipped,这比更多 gzipped关闭代码没有ADVANCED_OPTIMIZATIONS)所以它看起来不像一个成功的命题。
答案 4 :(得分:5)
从jQuery 1.4开始,Google的Closure Compiler被用作jQuery版本的默认缩小技术。但是,jQuery仅使用SIMPLE_OPTIMIZATIONS设置。 jQuery团队有no plans to support ADVANCED_OPTIMIZATIONS。
答案 5 :(得分:2)
出于好奇,我把最新Prototype和jQuery库的SlickSpeed测试放在一起,用YUI和Closure缩小。 You can run the tests here
正如其他人所说,使用ADVANCED_OPT进行编译不起作用,但如果有人想做这项工作,我很乐意将结果添加到SlickSpeed测试中。
答案 6 :(得分:1)
Closure不会最小化并重命名变量吗? jQuery已经有了.min版本。再次关闭缩小可能是最小的帮助和潜在的危险。
编辑:我刚刚做到了。
Compilation was a success!
Original Size: 55.91KB (19.28KB gzipped)
Compiled Size: 54.05KB (18.28KB gzipped)
Saved 3.34% off the original size (5.18% off the gzipped size)
这是已经开采的版本之上。这里有一个演示:http://closure-compiler.appspot.com/home
答案 7 :(得分:1)
我使用Closure(使用ADVANCED_OPTIMIZATIONS)来压缩我托管的单页网站的javascript代码,并且比YUI Compressor节省了大量资金。所以我开始考虑缩小该网站的jQuery,因为它肯定不会使用相关的jQuery库。
每次我通过编译器运行jQuery时都会收到警告,主要是指出未使用的部分代码。即使如此,编译后的代码也不起作用。我看到的主要问题是编译器没有正确导出内容。通过将它们附加到窗口对象,我能够轻松地从我自己的代码中导出函数,但是我还没有用jQuery做到这一点。
好消息是John Resig已经在试验Closure。我怀疑我们会在不久的将来看到两者兼容的新版本。
答案 8 :(得分:0)
我尝试使用他们的online compiler,效果很好。
答案 9 :(得分:-1)
jQuery与高级模式下的Closure Compiler不兼容。我同意将它兼容是一件非常好的事情,因为它的方法链语法很容易为虚拟化原型提供更高的执行速度。
事实上,在流行的JavaScript库(Closure Library除外)中,只有Dojo Toolkit与Closure Advanced模式兼容。