Сжатие JS-файлов (JavaScript кода)

mfl
На сайте с 16.10.2006
Offline
134
mfl
6394

Есть ли нормальные программы или online-сервисы для этих целей?

Попытался сжать js-код при помощи http://javascriptcompressor.com/

Полученный код не функционирует ни в одном браузере. Небольшие скрипты (до 5кб) после сжатия работают нормально.

Kolyaj
На сайте с 28.03.2006
Offline
69
#1

mfl, удаляйте лишние пробелы и отдавайте скрипты с gzip'ом. Лучше только дополнительная обфускация.

E
На сайте с 11.08.2007
Offline
34
#2

делаешь так -

1) сжимаешь все большие скрипты gzip - кладешь их в папку , например js/

там же помещаешь несжатые варианты скриптов

типа prototype.js.gz, prototype.js

2) в htaccess в данной папке прописываешь, например

ExpiresActive On

ExpiresByType text/javascript "access plus 1 month"

RewriteEngine on

RewriteRule ^(.*\.js\.gz)$ - [L]

RewriteCond %{HTTP:Accept-Encoding} gzip

RewriteCond %{REQUEST_FILENAME}.gz -f

RewriteRule ^(.*)$ $1.gz

3) бьешь жирный плюс в репу.

Если браузер не понимает gzip - отдается несжатая версия, если понимает - то сжатая.

кеширование можно по вкусу.

и вуаля! prototype в 98кб отдается в 15 кб!

пример в подписи.

Антикризисная покупка и продажа слонов (http://www.slons.ru/?ref=web)
P
На сайте с 08.03.2007
Offline
250
#3

на сайте jQuery.com есть ссылки на несколько разных сжимателей. Насчёт обфускации - для JS этот фокус не пройдёт.

Kolyaj
На сайте с 28.03.2006
Offline
69
#4
Pilat:
Насчёт обфускации - для JS этот фокус не пройдёт.

Поподробней, пожалуйста.

Zhilinsky
На сайте с 05.08.2007
Offline
86
#5
Жилинский (http://жилинский.рф/).
Ufaweb
На сайте с 03.03.2008
Offline
182
#6
Kolyaj
На сайте с 28.03.2006
Offline
69
#7
Ufaweb:
http://dean.edwards.name/packer/

Уж явно хуже обычного gzip'а, как по сжатию, так и по скорости.

P
На сайте с 08.03.2007
Offline
250
#8
Kolyaj:
Поподробней, пожалуйста.

Совсем недавно прокатилась волна сообщений о вирусах в jQuery.pack.js - судя по всему, результат после сжимателя стал похож на зашифрованный троянский скрипт. Поэтому, учитывая что экономия размера незначительная, я и порекомендовал с обфускаторами не связываться. В смысле закрытия кодов от него толку 0, а лишние проблемы возможны.

Ufaweb
На сайте с 03.03.2008
Offline
182
#9
Kolyaj:
Уж явно хуже обычного gzip'а, как по сжатию, так и по скорости.

дык никто не запрещает и это отдавать под гзипом ;)

Kolyaj
На сайте с 28.03.2006
Offline
69
#10

Pilat, под обфускацией я понимал только замену имен локальных переменных и функций на более короткие.

Ufaweb:
дык никто не запрещает и это отдавать под гзипом

Только толку это не даст. Packer использует алгоритм, похожий на gzip, поэтому

1. Скрипт дольше выполняется, т.к. ему нужно еще себя распаковать, а gzip распаковывает браузер, что, несомненно, быстрее.

2. Скрипт после запаковки вынужден содержать в себе еще и распаковщик, что увеличивает его размер по сравнению с обычным gzip'ом, которого распаковывает браузер.

3. Скрипт не пакуется gzip'ом, т.к. он и так чем-то похожим запакован.

Проигрыши по всем пунктам.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий