有这样的事情:
(function ($, window, document, undefined) {
'use strict';
$.fn.demo = function (options) {
var active = "active";
var section = ".bb-demo";
$(section).addClass(active);
$(section).addClass(active);
$(section).addClass(active);
$(section).addClass(active);
};
})(jQuery, window, document);
Closure Simple mode会产生 200字节:
(function(a,b,c,d){a.fn.demo=function(b){a(".bb-demo").addClass("active");a(".bb-demo").addClass("active");a(".bb-demo").addClass("active");a(".bb-demo").addClass("active")}})(jQuery,window,document);
虽然YUI compressor导致 169字节:
(function(c,b,a,d){c.fn.demo=function(e){var g="active";var f=".bb-demo";c(f).addClass(g);c(f).addClass(g);c(f).addClass(g);c(f).addClass(g)}})(jQuery,window,document);
是否有办法在Closure中压缩这些字符串变量? 为什么不这样做呢? 是因为在性能方面有更好的结果吗?
答案 0 :(得分:3)
这包括Closure Compiler常见问题解答。 https://github.com/google/closure-compiler/wiki/FAQ#closure-compiler-inlined-all-my-strings-which-made-my-code-size-bigger-why-did-it-do-that
Closure Compiler假设您正在使用gzip压缩。如果你 不,你应该。配置服务器以gzip代码是一个 您可以进行的最有效和最简单的优化 做。 gzip算法通过尝试别名字节序列来工作 一种最佳方式。手动别名字符串几乎总是使 压缩代码大小更大,因为它颠覆了gzip自己的算法 用于别名。所以Closure Compiler将(几乎)总是内联你的 字符串,它可以,因为这将使您的压缩代码 小。