четверг, 25 сентября 2008 г.

Оптимизация JScript

Каждый вэб-программист, в эпоху 2.0 приходит к тому что есть необходимость в использовании какого -нить jsframework`а. Развелось их в последнее время очень много, но суть не в этом. Каждый сталкивается с тем что его любимый framework становится все тяжелее и тяжелее, и есть необходимость уменьшить его вес путем компрессии и удаления всего лишнего. Для этого создано несколько оптимизаторов-компрессоров. Вот парочка из них:
YUI Compressor.
Компрессор от разработчиков yahoo. Распостраняется безплатно вместе с исходниками, написан на Java, легок в использовании, работает через командную строку, может оптимизировать как JScript так и CSS.
Строка запуска(использую версию 2.3.5)
java -jar /путь/до/компрессора/yuicompressor-2.3.5.jar [параметры] [/путь/до/файла]
Параметров у него немного, рассмотрим наиболее полезные.
--type <тип> Здесь сразу все понятно, указываем что собираемся минимизировать jscript или сss
--charset <кодировка> Указываем в какой кодировке минимизируемый файл
-o <имя файла> С помощью этой опции можно задать выходной файл, без указания будет заменен исходный файл.
По умолчанию кроме минимизации он делает еще и обфуксацию кода, которую при желании можно оключить с помощью опции --nomunge, эта опция работает только для jsсript файлов.
В целом очень хороший компрессор, легко использовать. Из минусов можно отметить то что построен на java и требует для работы виртуальную машину java.
JsMin.
Второй компрессор кода который я рассмотрю написал Douglas Crockford. Он также распостраняется свободно, доступно несколько реализаций на разных языках программирования C, C#, Java, JavaScript, Perl, PHP, Python, OCAML, Ruby. В нем не предусмотрена обфуксация кода, т.е. из файла просто вырезаются ненужные символы(например перевод строки, пробел или комментарий).
Я посмотрел исполнение этого компрессора на C и Python.
Как работать? На вход подаем jscript который нужно минимизировать он его обрабатывает и выдает.
И так подведем итоги. Оба рассмотренных минимизатора очень качественные и заслуживают внимания.
Единственный минус это неудобство работы, приходится лезть в консоль, прописывать пути. По этому в следующей заметке я раскажу как написать гуи для удобства работы с этими компрессорами. Гуй будет написан на питоне с использованием QT и будет позволять как выбор файла для минимизации так и выбор компрессора. Вобщем то гуй уже готов, но об этом в следующей статье, если руки доберуться ее написать ))).


Powered by ScribeFire.