如果您的网站启用了deflate / zip压缩,那么JavaScript缩小是否有任何意义?
我的理论是压缩的缩小JavaScript文件和压缩的未缩小JavaScript文件之间的差异可以忽略不计。
很少有浏览器不支持压缩。我会想象一些机器人(蜘蛛)可能不支持压缩(我知道至少有一个),但它们不太可能对你的JavaScript感兴趣,因为它们不太可能正在执行JS,所以不应该下载它。
答案 0 :(得分:28)
我们来试试吧。我使用jQuery 1.4.2和gzip(没有标记; -9
似乎没有显着差异)来获得以下数字。
因此,在这种特殊情况下,缩小使文件几乎小两倍。不可否认,开发版本充满了评论。让我们解决这些问题,看看会发生什么:
这仍然比缩小版本大得多。
答案 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可以(理论上)实现的相同压缩级别。