如果你打开了压缩,那么JavaScript缩小是否有任何意义?

时间:2010-07-13 16:17:40

标签: javascript minify

如果您的网站启用了deflate / zip压缩,那么JavaScript缩小是否有任何意义?

我的理论是压缩的缩小JavaScript文件和压缩的未缩小JavaScript文件之间的差异可以忽略不计。

很少有浏览器不支持压缩。我会想象一些机器人(蜘蛛)可能不支持压缩(我知道至少有一个),但它们不太可能对你的JavaScript感兴趣,因为它们不太可能正在执行JS,所以不应该下载它。

8 个答案:

答案 0 :(得分:28)

我们来试试吧。我使用jQuery 1.4.2和gzip(没有标记; -9似乎没有显着差异)来获得以下数字。

  • 开发:163,855字节
  • 开发,压缩: 45,994字节
  • 缩小:72,174字节
  • 缩小,压缩: 24,565字节

因此,在这种特殊情况下,缩小使文件几乎小两倍。不可否认,开发版本充满了评论。让我们解决这些问题,看看会发生什么:

  • 剥离:131,155字节
  • 剥离,压缩: 32,914字节

这仍然比缩小版本大得多。

答案 1 :(得分:2)

在gzip之前缩小文件会使服务器性能略有不同,但我怀疑这会增加很多。缩小将删除评论,gzip / deflate不会,但除此之外,我会说你是正确的。

当然,总有IE6。根据我的经验,当涉及到gzip除text / html以外的任何东西时,这个浏览器是不可靠的。然而,它几乎到了无关紧要的程度,因为IE6的使用量持续下降。

答案 2 :(得分:2)

我尝试在原始版本和缩小版本中压缩jquery-1.3.2:

jquery-1.3.2.js      118 kb  ->  36 kb
jquery-1.3.2.min.js   56 kb  ->  20 kb

因此,在压缩之前缩小确实会产生很大的差异。

答案 3 :(得分:1)

我相信缩小版本的运行速度会更快。变量现在是1-2个字形长,因此解析更快,空格和注释都不是问题。当然,您需要设计一个测试才能真正告诉任何差异。

移动平台的压缩有利有弊。是的,它的下载速度更快,但解压缩确实会耗尽电池寿命。

- 戴夫

答案 4 :(得分:0)

每个字节都很重要。你节省的更多,更好。

答案 5 :(得分:0)

您还可以使用使用base-62编码之类的JavaScript压缩器/打包器(例如,this)。

它可以将72174个字节(jquery-1.4.2.min.js)转换为大约50640个字节。但是,与直接压缩缩小文件(24K)相比,进一步压缩它不会改善压缩。

(如果你使用压缩器/打包器,你可能还需要保留许可证头,在这个例子中大约400字节。)

答案 6 :(得分:0)

查看雅虎的开发者网站 - http://developer.yahoo.com/performance/rules.html - 了解为什么缩小压缩是好的一些原因。另外,请查看Steve Souders的任何内容(High Performance Web Sites - 精彩的网站和书籍!)。

我要避免混淆,除非你真的想尽可能地挤出你的脚本。根据您编写JavaScript的方式,混淆可能会导致错误。你可能最好只是缩小并获得80-90%的方式。

祝你好运!

答案 7 :(得分:0)

请记住,缩小实际上丢弃信息。空格/注释/冗长的变量名称/ etc ...被完全丢弃(并且无法恢复)。

另一方面,服务器压缩需要无损,因此不能丢弃任何信息。它只能压缩它。

因此,服务器压缩不能(理论上)达到minificaiton可以(理论上)实现的相同压缩级别。

Remember, though that while theory and practice are theoretically the same, in practice they never are。 : - )