【问题标题】:Is it bad to Base62 encode a javascript file?Base62 对 javascript 文件进行编码是不是很糟糕?
【发布时间】:2010-11-24 00:08:23
【问题描述】:

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

它有几个选项,

  1. Base62 编码
  2. 收缩变量

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

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

现在我对缩小和打包不太了解,因为它会使文件更小。但是我很好奇 Base62 编码在做什么,使用它不好吗?我看到它使文件更小,但它是否会在以后创建更多工作/负载以在页面上对其进行解码?

【问题讨论】:

    标签: javascript minify


    【解决方案1】:

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

    例如:

    var a = 10;
    

    编码为:

    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,{}))
    

    【讨论】:

      【解决方案2】:

      Base 62 只不过是一个positional notation。也就是说,它可以用很短的版本来表示很长的普通文本。

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

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

      【讨论】:

      • 我还想补充一点,如果服务器没有 gzip 响应,这是一个很好的替代品。由于额外的工作,也只针对独特的应用程序文件而不是库。
      猜你喜欢
      • 2013-03-16
      • 2011-10-06
      • 2010-10-11
      • 1970-01-01
      • 1970-01-01
      • 2011-05-04
      • 2010-10-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多