在Yahoo! UI Compressor,Dean Edwards Packer和jsmin之间,这产生了更好的结果,无论是在产生足迹还是在混淆时更少的错误。哪个JavaScript缩小库会产生更好的结果?
回答
更好的是有点主观的在这里,因为有多个因素的考虑(甚至超出你列出):
- 压缩后的大小并不能说明整个故事,因为一个积极的压缩可能会导致更慢由于在浏览器解释之前运行拆包代码所需的额外时间,因此运行时性能较差。
- 当您控制输入代码时,错误是最容易避免的 - 明智地使用分号会很长。在您的代码上运行JSLint,并修复报告的任何问题。
- 当然,代码本身的样式和大小会影响结果。
- 最后,值得注意的是,尽管一些代码压缩工具将更有效地与gzip结合,但服务器端gzip压缩总是会导致比任何代码压缩更小的下载。
我的建议是成果的基础上运行,你打算通过几个压缩机(自动化比较工具如CompressorRater帮助...)压缩码,并选择 - 记忆测试,轮廓和比较之后的实际页面加载时间。
作为Mootools的用户,我注意到Mootools已经通过YUI Compressor替换了Dean Edwards的Packer。我还记得有一次关于Ajaxian.com的讨论,Julien(Compressor作者)指出YUI压缩机做得更好的地方。我使用Compressor并从未见过任何问题,但我从来没有研究过在混淆时哪些产生更少的错误。
YUI Compressor比Packer压缩更安全,更紧凑。我相信Packer需要完美的JavaScript,否则在脚本加载时会导致JavaScript错误。不管怎样,无论您使用哪种方式,都可以通过Gzip文件获得最大的性能提升。
比较最好的压缩机的好方法是Arthur Blake的The JavaScript CompressorRater。
你通常感兴趣的是用GZIP压缩后的大小(你应该配置你的web服务器来执行压缩)。
最好的结果通常是从YUI Compressor或Dojo ShrinkSafe。差异非常小,过了一段时间我停止了比较,我只使用YUI压缩机。
编辑: 自从这个问题被问到最初的时候,2个新的minifiers已被释放。它们通常至少与YUI压缩机一样好,甚至更好。
- Google's Closure Compiler。包括有时适用的积极的advanced optimization模式。
- 微软的Ajax Minifier(搜索this page为 “minifier”)
编辑2:
- UglifyJS,由jQuery开发团队的官方1.5版本选择
Codeplex上还有一个端口YUICompress for .NET(其中包括用于TFS的构建任务)。
这是一个老问题,而Google Closure Compiler则不存在。我还没用过,但看起来真的是不错。
完全披露,我背后:http://www.toptensoftware.com/minime它做缩小,混淆和一套合理的皮棉风格检查。目前它的产量比Yui小,不如Closure。
- 1. 为什么JavaScript中的parseFloat()会产生consisant但会产生单元结果?
- 2. 哪个结构更好? - PHP HTTP库
- 3. 哪种方法会产生更好的性能?
- 4. JavaScript十进制缩减产生不正确的结果
- 5. Google Vision OCR:DOCUMENT_TEXT_DETECTION在TEXT_DETECTION很好时会产生奇怪的结果
- 6. 更好地了解JavaScript的产生
- 7. 更严格的查询会产生更多结果?
- 8. Java 8 JPA存储库流产生两个(或更多)结果?
- 9. 为什么在Javascript中添加两位小数会产生错误的结果?
- 10. Math.Atan2会产生奇怪的结果吗?
- 11. 哪一个在SquishIt和Combres2之间有更好的缩小?
- 12. 更好地结合&缩小JavaScript或使用Google CDN?
- 13. C小端,但产生大端结果?
- 14. 刮板不会产生任何结果
- 15. Mongoose不会产生findeOne结果co
- 16. PHP eval不会产生预期结果
- 17. MongoDB JavaScript产生大量结果
- 18. 哪个地图缩小性能更好?Hbase还是Cassandra?
- 19. 如何写一个会产生我想要的结果的foreach
- 20. 更新GUI会产生闪烁效果
- 21. ImageMagick与GD - 哪个速度更快,资源更少,产生更好的图像?
- 22. 为什么不同的Mandelbrot缩放值会产生相同的结果?
- 23. 产生多个结果的关键
- 24. 这两个实现为什么会产生不同的结果?
- 25. 在iPhone上混合两个FBO会产生奇怪的结果?
- 26. 合并两个文本文件会产生更奇怪的结果
- 27. 的Javascript cookie不会产生
- 28. 回应,结果,回复,哪个最好?
- 29. 总结表中的列不会产生正确的结果
- 30. 哪个更好的数据库设计?
这通常是一个不错的主意,可以调整性能并查看效果,但对于JSMin,Dojo ShrinkSafe和YUI Compressor,它们只会减小文件大小(替换符号,删除死代码) - 它们不会修改行为。 Dean Edward的包装工确实增加了处理时间。 – orip 2008-12-12 00:03:52