Поведение упаковщика, компрессора YUI и т. Д. - PullRequest
1 голос
/ 29 августа 2010

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

Они также меняют имя свойств объектов?Я предполагаю, что они не будут, так как иначе что-либо, использующее нотацию object[property], где property вычисляется динамически, может потерпеть неудачу.Правильно ли это?

Таким образом, в этом случае, если все пространство имен имеет только одну глобальную переменную, изменение имен переменных не принесет никакой выгоды.Это снова верно?

Ответы [ 3 ]

2 голосов
/ 29 августа 2010

Упаковщик выполняет сжатие, заменяя обычные слова более короткими токенами.Он вообще не переименовывается.

Такие инструменты, как YUI Compressor, изменяют только локальные переменные (и аргументы), но вы можете хранить часто используемые объекты в локальных переменных, чтобы использовать преимущества пространства.(Кроме того, доступ к локальным переменным немного быстрее по сравнению с обходом цепочки областей действия до верхнего уровня.)

1 голос
/ 29 августа 2010

Только локальные переменные могут быть переименованы

0 голосов
/ 24 сентября 2010

YUI Compressor может минимизировать JavaScript и каскадные таблицы стилей.

Он также может опционально запутывать ... но только Javascript.

для объяснения различий ...

минификация : удаляет пробелы и комментарии.

обфускация : также минимизирует, но также вносит изменения в программу, изменяя именапеременные, функции и члены, что значительно усложняет понимание программы и дальнейшее уменьшение ее размера в результате сделки

Так почему же мы минимизируем или запутываем?Чтобы уменьшить размер файла при сохранении той же функциональности.

...