【发布时间】:2010-10-22 20:51:55
【问题描述】:
前几天,我与喜欢使用 Gzip 的人进行了一次关于缩小 Javascript 和 CSS 的热烈讨论。
我会称这个人为 X。
X 说 Gzip 已经压缩了代码,因为它压缩了你的文件。
我不同意。 Zip 是一种无损缩小文件大小的方法。无损意味着必须完美恢复原件,这意味着必须存储信息才能恢复空格、不需要的字符、注释代码和其他所有内容。这会占用更多空间,因为必须压缩更多空间。
我没有测试的方法,但我相信这段代码的Gzip:
.a1 {
background-color:#FFFFFF;
padding: 40px 40px 40px 40px;
}
仍然会比这段代码的 Gzip 大:
.a1{body:background-color:#FFF;padding:40px}
有没有人可以证明这是对还是错。
请不要说“这是对的,因为这是我一直使用的”。
我在这里要求科学证明。
【问题讨论】:
-
在查看极小的文件时尽量不要关注压缩结果。意识到 deflate 和 gzip 会产生一些开销,因此当文件大小较小时,开销的影响要大得多。
-
一个有效的点。不过,当上面显示的代码恰当地展示了我想要研究的原理时,我不会用数百行 CSS/JS 来让你们厌烦。
-
@JamesMcMahon 一个有效的观点,但不是一个答案。
-
需要注意的一点是缓存限制(取决于浏览器),但是一些移动浏览器会根据解压缩文件的大小进行缓存,在这种情况下,缩小是您的朋友。此外,我有一个 2meg JavaScript web 应用程序(cmets 和 reactJS 以及其他所有内容),当缩小(uglified)和 gzip(使用 zopfli 压缩)时为 75k(仅缩小大约为 200k)。
标签: compression gzip minify