提问人:Silver Light 提问时间:4/24/2013 最后编辑:Silver Light 更新时间:9/7/2017 访问量:13543
当我们有 gzip 时,为什么人们会缩小 css 和 javascript?[复制]
Why do people minify css and javascript, when we have gzip? [duplicate]
问:
如果人们可以在 Web 服务器上打开 gzip 压缩,为什么人们会经历缩小 JavaScript 和 CSS 文件的所有痛苦?这将在流量性能方面产生相同(甚至更好)的结果。
缩小会带来额外的好处吗?
答:
12赞
Pete
4/24/2013
#1
您可以将 gzip(通常内置于 Web 服务器中)与 Minification 结合使用。但是,缩小可以做很多 gzip 无法完成的其他操作,例如删除注释、将长变量重命名为较短的变量名称等。
生成的传输数据可能比简单地对原始.js进行 gzip 压缩要小得多。显然,这取决于源.js。
您可以查看 Compressorater(http://compressorrater.thruhere.net/)。你可以加入你的.js,它将使用各种有和没有 gzip 的库来缩小,并显示结果。您可以看到各种库的简单 gzipped 和 gzipped + 缩小之间的比较。
评论
2赞
Pavelloz
9/29/2016
实际上,缩小CSS并不能缩短任何名称,只能删除一些不必要的字符和注释,这有时是很少;)我刚刚测试了我的一个 css 文件的缩小 + gzip 与 gzip 版本,差异很小,我什至懒得缩小它(是的,这个项目没有为此设置一个进程,如果有,我什至懒得考虑这个差异:))
0赞
FINDarkside
10/29/2018
@Pavelloz 当然可以,如果它也从html中缩小它们。
0赞
Pavelloz
2/23/2019
你有什么项目可以炫耀吗?还是只是理论?
3赞
Kenneth
4/24/2013
#2
缩小 Javascript 和 CSS 不仅可以压缩它,还可以添加其他无法通过压缩实现的优化。
例如,通过缩小,您可以修改长变量的名称。然后,该变量的所有实例将只有一个字符。 缩小的另一件事是删除评论。这不能通过 gzip 完成。
除此之外,缩小通常将各种文件捆绑成一个文件,从而减少请求量
除了缩小之外,您还应该使用 gzip
评论
0赞
Ian
4/24/2013
“您可以修改长变量的名称。” - 这不是缩小的作用。这就是所谓的混淆。
4赞
Kenneth
4/24/2013
缩小也会减少变量名称的长度(如果它认为它是安全的)。试试谷歌的 minifier 或 YUI minifier,你会看到它也能做到这一点。显然,这也混淆了代码,因为它更难阅读,所以它基本上是二合一操作。
0赞
Ian
4/24/2013
但这不是缩小的意义所在。缩小会删除空格、不必要的字符、注释等。混淆会改变代码,但其功能性保持不变。仅仅因为某些“缩小器”两者兼而有之,并不意味着这就是缩小。我知道我是技术性的,但仍然
2赞
Kenneth
4/24/2013
好吧,你可以争论这个问题。严格来说,使变量名称更短也会缩小它,因为总文件大小会减小。但同样,语义。事实是,几乎所有的压缩器也缩短了变量名称和函数名称。
1赞
Pete
4/25/2013
@Ian,我不同意你对缩小的定义,所以我觉得我不是在谈论特定的工具。我也不认为我是唯一一个这样做的人(stackoverflow.com/questions/12768840/minify-and-variable-names)。缩小是关于减小代码的大小。重命名变量可以实现该目标。因此,在我的书中,这是一个有效的缩小步骤。
评论