YUI压缩器用双引号替换单引号的原因是什么?

时间:2012-02-14 19:18:07

标签: javascript minify yui-compressor

正如标题所说:YUI compressor用双引号替换单引号的原因是什么?双引号占用的空间更少(我不这么认为)?还是别的什么?

1 个答案:

答案 0 :(得分:10)

将这些字符规范化为一种类型可以更好地实现GZIP压缩,为什么它恰好是双引号是巧合。

GZip以压缩的标准方式工作,例如,如果你有一个字符串,如:

"Foo", 'bar', "baz"

您可以将",压缩为单个字符(让我们使用#符号表示),将字符串缩减为:

"Foo#'bar', "baz"

另一方面,如果你有:

"Foo", "bar", "baz"

您可以压缩", "b,例如:

"Foo#ar#az"

通过消除可用的字符总数,从而导致更短的字符串。

同样,只要它是一致的,将其作为引用并不重要。

这是我的linux命令行中的剪切+粘贴,用于演示它:

briang@ubuntu:~$ cat 1.txt
"Foo", 'bar', "baz"

briang@ubuntu:~$ cat 2.txt
"Foo", "bar", "baz"

briang@ubuntu:~$ cat 1.txt.gz
&▒:O1.txtSr▒▒W▒QPOJ,R▒QPJJ▒R▒(▒P▒

briang@ubuntu:~$ cat 2.txt.gz
<▒:O2.txtSr▒▒W▒QPJJ,▒PUJ\tE▒

briang@ubuntu:~$ ls -la *txt*
-rw-rw-r-- 1 briang briang 20 2012-02-14 16:39 1.txt
-rw-rw-r-- 1 briang briang 46 2012-02-14 16:37 1.txt.gz
-rw-rw-r-- 1 briang briang 20 2012-02-14 16:39 2.txt
-rw-rw-r-- 1 briang briang 41 2012-02-14 16:38 2.txt.gz

你可以看到gziping这样的小文件增加了大小而不是减少它们,但是看看两个原始输入之间的gzip差异可以得到概念。规范化的gzip文件小5个字节。