【问题标题】:why does minification + gzip make file sizes smaller than just gzip为什么缩小 + gzip 使文件大小比 gzip 小
【发布时间】:2014-04-24 18:39:27
【问题描述】:

据我了解:
- 缩小浏览您的源代码并用较短的变量替换代码,删除空格,进行一些代码替换优化(有时)。
- gzip 对您的代码进行重复数据删除

gzip + minfication 不会互相矛盾吗?按理说,在缩小之后,重复数据删除会更加困难。

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

为什么?

【问题讨论】:

  • 在我的脑海中,但多次调用一个没有参数的函数是一个可以“重复数据删除”的字符串的简单示例......缩小将 someRidiculousFunction() 变成 a(),并且 gzip 删除了调用 a() 并带有一个指向它的一个实例的多行。

标签: javascript optimization gzip minify


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    那是因为要保留的东西少了。

    如果可能,缩小还会删除行尾、括号和其他冗余代码。多余的代码不必压缩。这就是为什么它们都少于两者之一的原因。

    【讨论】:

      猜你喜欢
      • 2010-10-22
      • 2018-08-12
      • 2022-01-06
      • 2012-07-02
      • 2011-07-28
      • 1970-01-01
      • 1970-01-01
      • 2016-11-05
      • 2011-04-19
      相关资源
      最近更新 更多