Это плохо для Base62 кодировать файл javascript? - PullRequest
20 голосов
/ 29 августа 2009

Я только что нашел упаковщик javascript Дина Эдвардса здесь: http://dean.edwards.name/packer/

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

  1. Base62 кодировать
  2. Сжатие переменных

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

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

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

Ответы [ 2 ]

34 голосов
/ 29 августа 2009

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

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

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

16 голосов
/ 29 августа 2009

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

Например:

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,{}))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...