为什么缩小+gzip使文件大小小于gzip



据我所知:
-Minification在源代码中爬行,并为较短的变量替换代码,删除空白,进行一些代码替换优化(有时)
-gzip对您的代码进行重复数据消除

gzip+minalization不是彼此不一致吗?毫无疑问,缩小后,数据消除会更加困难。

尽管gzip+缩小会导致文件大小变小。

为什么?

允许最小化永久更改代码。例如,它可以简单地用变量名a替换变量名foobar,而不需要记住如何撤消缩小,并且它可以丢弃不需要的空白。然而,它并不能减少浪费的空间,因为所有字符都是使用相同的长度编码的,或者因为在两个方法调用中使用了相同的参数——毕竟,缩小后的版本仍然需要是有效的代码。

压缩,例如使用gzip可以产生不再有效的javascript输出。因此,gzip可以对不同长度的字符进行编码,使大括号消耗的比特数少于8,并且可以压缩代码中的公共部分。然而,因为它需要能够恢复原始代码,所以它不能只是将变量重命名为更短的名称。

这是因为要保留的东西更少。

最小化还会在可能的情况下删除行尾、括号和其他冗余代码。多余的代码不必压缩。这就是为什么它们都比两者中的一个小。

最新更新