javascript – 当使用YUI压缩器时,我应该合并然后缩小,还是缩小然后合并?

前端之家收集整理的这篇文章主要介绍了javascript – 当使用YUI压缩器时,我应该合并然后缩小,还是缩小然后合并?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我读过一些人说如果你结合然后缩小会有问题,你应该总是缩小然后合并(参见例如this question评论.)但是,我从未见过这些问题的例子.或者自己遇到过他们.我也找不到YUI开发人员的任何官方说明最佳做法.

最佳答案
由于压缩算法的工作方式,组合然后缩小应该给我们最好的结果.

GZIP压缩

目前最流行的压缩算法是GZIP.它是如何工作的,它试图引用一个字符(或一个字符串)的位置,并定义这些字符可以重复多少.

我们假设您要压缩的字符串是:AABAB

它会被算法打破:

[0,0]A  - Last occurrence of A was 0 characters ago,and its length was 0
[1,1]A  - Last occurrence of A was 1 characters ago,and its length was 1 char
[0,0]B  - Last occurrence of B was 0 characters ago,and its length was 0
[2,2]AB - Here comes the interesting part. We will only reference the set of
          characters,not occurrence of each character. The last occurrence of AB
          was 2 characters ago,and the length of this set of characters is 2. 

缩小

知道这一点,我们可以看到,如果我们重新使用相同的字符,例如函数参数名称,那么对算法很重要 – 这正是缩小所做的事情(参见:closure compiler).如果给出这两个功能

function hello(name,surname) {
    alert('Welcome '+ name + ' ' + surname);
}

function logout( id ) {
    alert('Logged out '+ id);
}

输出版本将如下:

function hello(a,b){alert("Welcome "+a+" "+b)}
function logout(a){alert("Logged out "+a)};

这将使算法更有效.现在这是一个非常简单的例子,但是在更大的代码块中,变量甚至函数名称可以用它们的缩小版本替换,服务的顺序将开始变得重要.

更多来源:

Google developers video about compression methods

Dissecting the GZIP format

猜你在找的CSS相关文章