3

Имея что-то вроде этого:Компилятор Google Closure не сжимает строковые значения?

(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

возможно дубликат [предотвратить закрытие компилятора от дублирования строки] (http://stackoverflow.com/questions/8060799/prevent-closure-compiler-from-duplicating-string) –

ответ

3

Это распространяется на часто задаваемые вопросы о компиляторе Closure. 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 (почти) всегда строит ваши строки , когда это возможно, потому что это сделает ваш сжатый код меньшим.

+0

Спасибо, я пропустил часто задаваемые вопросы в GitHub ! – Alvaro

+0

Спасибо за редактирование – John

Смежные вопросы