12

雅虎之间!UI CompressorDean Edwards Packerjsmin,它们产生了更好的结果,无论是在占用空间方面还是在混淆时的错误更少。

4

8 回答 8

11

比较最佳压缩器的一个好方法是Arthur Blake的 JavaScript CompressorRater

您通常感兴趣的是使用 GZIP 压缩后的大小(您应该配置您的 Web 服务器以执行压缩)。

最好的结果通常来自YUI CompressorDojo ShrinkSafe。差异是如此之小,以至于过了一会儿我停止了比较,我只使用了 YUI Compressor。

编辑: 自从最初提出这个问题以来,已经发布了 2 个新的缩小器。它们通常至少与 YUI Compressor 一样好,甚至更好。

编辑2:

  • UglifyJS,由 jQuery 团队选择用于官方 1.5 版本
于 2008-12-11T21:26:40.090 回答
3

更好在这里有点主观,因为需要考虑多个因素(甚至超出您列出的因素):

  1. 压缩大小并不能说明全部情况,因为在浏览器解释之前运行解包代码需要额外的时间,因此激进的压缩器可能会导致运行时性能变慢。
    • 当您控制输入代码时,最容易避免错误 - 明智地使用分号大有帮助。在您的代码上运行 JSLint,并修复任何报告的问题。
    • 当然,代码本身的样式和大小会影响结果。
    • 最后,值得牢记的是,服务器端 gzip 压缩总是会比任何代码压缩产生更小的下载量,尽管一些代码压缩工具会更有效地与 gzip 结合使用。

我的建议是通过多个压缩器运行您打算压缩的代码(诸如CompressorRater之类的自动比较工具可以帮助...),并根据结果进行选择 - 记住在之后测试、分析和比较实际的页面加载时间。

于 2008-12-11T20:59:25.463 回答
2

一定要看看Dojo Shrinksafe。它最近被重新设计,显然性能得到了改善。

于 2008-12-11T22:17:30.597 回答
2

完全披露,我支持:http ://www.toptensoftware.com/minime ,它进行缩小、混淆和一组合理的 lint 样式检查。目前它产生的输出比 Yui 小,不如 Closure 好。

于 2010-08-25T14:36:06.140 回答
1

这是一个老问题,当时还不存在Google Closure Compiler 。我还没有使用它,但它看起来非常好。

于 2010-05-29T09:10:53.273 回答
0

作为一名 Mootools 用户,我注意到 Mootools 已经用 YUI Compressor 取代了 Dean Edwards 的 Packer。我还记得 Ajaxian.com 上有一个讨论,其中 Julien(Compressor 的作者)指出了 YUI Compressor 做得更好的领域。我使用了 Compressor 并且从未发现任何问题,但我从未研究过在混淆时哪个产生的错误更少。

于 2008-12-11T20:56:00.697 回答
0

YUI Compressor 的压缩比 Packer 更安全、更紧凑。我相信 Packer 需要完美地形成 JavaScript,否则在加载脚本时会导致 JavaScript 错误。尽管如此,无论您使用哪个,通过 Gzip 压缩文件,您都将获得最大的性能提升。

于 2008-12-11T21:13:54.313 回答
0

Codeplex 上还有一个用于 .NET 的 YUICompress端口(其中包括 TFS 的构建任务)。

于 2009-01-14T02:11:03.753 回答