前几天,我就缩小Javascript和CSS与更喜欢使用Gzip的人进行了一次比较活跃的讨论。
我会给这个人打电话。
X说Gzip可以缩小代码,因为它会压缩你的文件。
我不同意。Zip是一种缩小文件大小的无损方法。无损意味着必须完美地恢复原始信息,这意味着信息必须被存储,以便能够恢复空间、不需要的字符、注释代码和其他所有内容。这占用了更多的空间,因为必须压缩更多的空间。
我没有测试方法,但我相信这个代码的Gzip:
.a1 {
background-color:#FFFFFF;
padding: 40px 40px 40px 40px;
}仍将大于此代码的Gzip:
.a1{body:background-color:#FFF;padding:40px}有没有人能证明这是对的还是错的。
请不要来说“这是对的,因为这是我一直使用的”。
我在这里要求科学证据。
发布于 2009-04-30 14:20:25
很简单的测试。我拿了你的js,把它们放进不同的文件里,然后在上面运行gzip -9。结果是这样的。这是在运行Cygwin和gzip 1.3.12的WinXP机器上完成的。
-rwx------ 1 xxxxxxxx mkgroup-l-d 88 Apr 30 09:17 expanded.js.gz
-rwx------ 1 xxxxxxxx mkgroup-l-d 81 Apr 30 09:18 minified.js.gz下面是使用一个真实的JS示例进行的进一步测试。源文件为"common.js“,原始文件大小为73134字节。缩小到26232字节。
原始文件:
-rwxrwxrwx 1 xxxxxxxx mkgroup-l-d 73134 Apr 13 11:41 common.js缩小文件:
-rwxr-xr-x 1 xxxxxxxx mkgroup-l-d 26232 Apr 30 10:39 common-min.js使用-9选项(与上面相同的版本)压缩的原始文件:
-rwxrwxrwx 1 xxxxxxxx mkgroup-l-d 12402 Apr 13 11:41 common.js.gz使用-9选项(与上面相同的版本)压缩的文件:
-rwxr-xr-x 1 xxxxxxxx mkgroup-l-d 5608 Apr 30 10:39 common-min.js.gz正如你所看到的,不同的方法之间有着明确的区别。最好的办法是同时缩小和压缩它们。
发布于 2009-05-17 11:55:29
这是一个测试的结果,我做了一段时间前,使用“现实生活”CSS文件从我的网站。CSS优化器用于小型化。Ubuntu附带的标准Linux存档应用程序用于Gzipping。
原件:28,781字节
缩小:22,242个字节
Gzipped:6,969字节
Min+Gzip:5,990字节
我个人的观点是首先支持Gzipping,因为这显然是最大的区别。至于小型化,这取决于你的工作方式。您必须保留原来的CSS文件,以便进一步编辑。如果在每一次改变之后,它都不会让你感到烦恼,那就去做吧。
(注意:还有其他解决方案,例如在为文件服务时通过小型程序“按需”运行它,并将其缓存在文件系统中。)
发布于 2009-04-30 15:05:17
测试时要小心:这两个CSS片段非常小,因此它们不能从GZIP压缩中获益--仅增加GZIP的小页眉和页脚(大约20字节开销)就会失去所取得的成果。在现实中,您将不会有这么小的CSS文件,并关心压缩它。
minify+gzip压缩的不仅仅是gzip
对最初问题的答案是,是的,minify + gzip将获得比gzip更多的压缩。对于任何重要的示例(即超过几百字节的有用JS或CSS代码),这都是正确的。
对于这方面的示例,可用的压缩和解压缩的获取Jquery源代码,使用gzip压缩它们并查看。
值得注意的是,比起优化的CSS,Javascript从小型化中获益更多,但仍然有好处。
推理:
GZIP压缩是无损的。这意味着它必须存储所有文本,包括确切的空格、注释、长变量名称等等,以便以后能够完美地复制它们。另一方面,缩小是有损的。如果您缩小了代码,您将从代码中删除大部分这些信息,从而减少GZIP需要保留的内容。
https://stackoverflow.com/questions/807119
复制相似问题