Base62编码一个javascript文件是不是很糟糕?

Jas*_*vis 20 javascript minify

我刚刚在这里找到了Dean Edwards javascript packer:http: //dean.edwards.name/packer/

它有几个选项,

  1. Base62编码
  2. 缩小变量

为了测试它,我把最新版本的jquery已经缩小到56kb并在上面的页面上使用缩小变量运行它,结果是相同大小的文件,56kb.

然后我再次运行原始文件,同时选择了Base62编码和收缩变量,结果是一个42kb的文件.

现在我不太了解缩小和包装,然后它会使文件大小化.但我很好奇Base62编码在做什么,使用它是不是很糟糕?我看到它使文件变得更小,但它是否会在以后创建更多的工作/负载以在页面上解码它?

Arp*_*mbi 34

基座62只不过是位置符号.也就是说,它可以用于通过非常短的版本来表示非常长的普通文本.

在客户端使用js之前,使用Base62会增加一个额外的步骤.对于jQuery类库,此步骤可能需要额外100毫秒到500毫秒的时间在客户端上,具体取决于许多因素.

现在我们可以将下载脚本的时间减少与执行脚本所需的额外时间进行比较.它可以减少50ms的下载时间,但需要额外的100ms来处理它.收益递减!!


tva*_*son 16

它确实为客户创造了更多的工作.客户端必须运行代码来解码编码的脚本.如果您在编码块中只输入一点代码,这是非常明显的.

例如:

var a = 10;
Run Code Online (Sandbox Code Playgroud)

编码为:

eval(function(p,a,c,k,e,r){e=String;if(!''.replace(/^/,String)){while(c--)r[c]=k[c]||c;k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('0 1=2;',3,3,'var|a|10'.split('|'),0,{}))
Run Code Online (Sandbox Code Playgroud)