Подтвердить что ты не робот

Это плохо для Base62 кодировать javascript файл?

Я только что нашел Dean Edwards javascript packer здесь: http://dean.edwards.name/packer/

У него есть несколько вариантов,

  • Base62 encode
  • Сокращаемые переменные

Чтобы протестировать его, я взял последнюю версию jquery, которая уже была минитизирована до 56kb и запускала ее на этой странице выше с помощью сжатых переменных, результатом является файл того же размера, 56kb.

Затем я снова запускал исходный файл с выбранными как базовыми, так и Shrink-переменными, и результатом был файл размером 42 КБ.

Теперь я не знаю много о том, как минимизировать и упаковывать другие, а затем уменьшает размер файлов. Но мне любопытно, что делает кодировка Base62, плохо ли это использовать? Я вижу, он делает файл намного меньше, но создает ли он больше работы/нагрузки позже, чтобы декодировать его на странице?

4b9b3361

Ответ 1

База 62 - это не что иное, как позиционная нотация. То есть его можно использовать для представления очень длинного обычного текста с помощью более короткой версии.

Использование Base62 добавляет дополнительный шаг, прежде чем js можно будет использовать для клиентов. Для библиотеки jQuery этот шаг может занять от 100 до 500 мс на клиентах в зависимости от многих факторов.

Теперь мы можем сравнить сокращение времени загрузки script на дополнительное время, затраченное на выполнение script. Это может сократить время загрузки на 50 мс, но для обработки его потребуется дополнительно 100 мс. Уменьшение возвращается!

Ответ 2

Он создает больше работы с клиентом. Клиент должен запустить код для декодирования закодированного script. Это довольно очевидно, если вы введете только немного кода в блок кодирования.

Например:

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