Новости Joomla

0 Пользователей и 1 Гость просматривают эту тему.
  • 8 Ответов
  • 5292 Просмотров
*

..С...е...р...ы...й..

  • Захожу иногда
  • 51
  • 110 / 2
Юзаю обфускатор:
http://dean.edwards.name/packer/
Работает корректно, особенно по сравнению с YUI Compressor не переводит в знаки вопроса кириллицу, будь то ANSI или UTF-8.
У этого обфускатора есть две опции:
- Shrink variables (сокращение имен переменных)
- Base62 encode (так называемый packer)

Для примера я сжимал Mootols_Source.1.1.1 из Joomla 1.5.14, который весил 179Кб.
Без дополнительных опций происходит элементарная минимизаия, вес стал 71,8 кб - такой же размер как и сжатая версия в Joomla.
Фрагмент кода:
Цитировать
var MooTools={version:'1.11'};function $defined(obj){return(obj!=undefined)};function $type(obj){if(!$defined(obj)) return false;if(obj.htmlElement) return'element';var type=typeof obj;if(type=='object'&&obj.nodeName){switch(obj.nodeType){case 1:return'element';case 3:return(/\S/).test(obj.nodeValue)?'textnode':'whitespace'}}if(type=='object'||type=='function'){switch(obj.constructor){case Array:return'array';case


Далее я повторил с включенной опцией Shrink variables - вес 63,7 кб. Такую же обработку используют yootheme для подмены встроенного mootools.
Фрагмент кода:
Цитировать
var MooTools={version:'1.11'};function $defined(a){return(a!=undefined)};function $type(a){if(!$defined(a)) return false;if(a.htmlElement) return'element';var b=typeof a;if(b=='object'&&a.nodeName){switch(a.nodeType){case 1:return'element';case 3:return(/\S/).test(a.nodeValue)?'textnode':'whitespace'}}if(b=='object'||b=='function'){switch(a.constructor){case Array:return'array';case

Далее метод Base62 encode, результат 42,5 кб.
Пример:
Цитировать
eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--) r[e(c)]=k[c]||e(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}('o dT={e6:\'1.11\'};k $6F(N){m(N!=aX)};k $F(N){B(!$6F(N)) m O;B(N.53) m\'G\';o F=78 N;B(F==\'2I\'&&N.cR){26(N.7q){Y 1:m\'G\';Y 3:m(/\\S/).2A(N.bd)?\'bL\':\'dJ\'}}B(F==\'2I\'||F==\'k\'){26(N.ab){Y 2y:m\'1x\';Y 7r:m\'5A\';Y 18:m\'4Q\'}
Как видно код совсем не разобрать.

Потом включил обе опции - Shrink variables и Base62 encode. Результат незначительный, по сравнению с предидущем - 40,3 кб

Пока все работает без изменений.
Могут быть какие нибудь проблемы с таким порубленным кодом?
И еще я часто слышу про gzip, как его заюзать?
*

userxp

  • Живу я здесь
  • 2019
  • 403 / 6
  • Злой и ужасный бармалей
Re: Обфускация и минимизация скриптов
« Ответ #1 : 31.08.2009, 21:01:27 »
Могут быть какие нибудь проблемы с таким порубленным кодом?
да. не используй shrink variables
и желательно после упаковки проверять

И еще я часто слышу про gzip, как его заюзать?
gzip - это имеется ввиду YUI
Как правильно задавать вопрос службе технической поддержки  yes!
SGA CM 7.2.0 RC0 KANG Build GWK74 + s95allinonescript + CWM 5.0.2.6 + Modem XWKT3
*

Darkick

  • Завсегдатай
  • 1142
  • 239 / 1
Re: Обфускация и минимизация скриптов
« Ответ #2 : 31.08.2009, 23:26:01 »
Скачал оттуда же Packer for .NET. Можно им и CSS жать, но на них экономия конечно совсем не такая.
А вообще хорошая наводка, попробую на сайте посмотреть - нормально ли робит.
*

..С...е...р...ы...й..

  • Захожу иногда
  • 51
  • 110 / 2
Re: Обфускация и минимизация скриптов
« Ответ #3 : 02.09.2009, 16:19:04 »
Cамый оптимальный и надежный способ - это комбинация (минимизация + gzip)
- минимизация - это метод при котором удаляются комментарии пробелы и пустые строки, не нарушая при этом целостности кода, не сокращая переменные, поэтому код остается полностью работоспособным.
- gzip предварительное сжатие всех стилей и скриптов, без нагрузки на сервер. Скрипты можно по сжимать "тоталом", например.
А в местах подключения не забыть подописывать расширения  тра-та.js.gz

Так достигнуо сжатие встроенной библиотеки mootools до 19,5 кб.

Сервисы сжатия CSS:
http://compressor.ebiene.de
http://www.cssdrive.com/index.php/main/csscompressor
http://www.cssoptimiser.com
http://iceyboard.no-ip.org/projects/css_compressor
http://www.cleancss.com
http://floele.flyspray.org/csstidy/css_optimiser.php

Еще советую почитать:
http://apachedev.ru/2007/09/19/5-prostyih-sposobov-uskoreniya-sayta/
http://joomlaforum.ru/index.php/topic,68370.0.html
*

PaLyCH

  • Давно я тут
  • 956
  • 146 / 19
  • Менеджер проектов
Re: Обфускация и минимизация скриптов
« Ответ #4 : 19.10.2009, 21:27:44 »
Сервисы сжатия CSS:
По поводу сжатия CSS. Стоит быть внимательным и обязательно после сжатия проверять работоспособность кода. Если у вас есть хаки для разных браузеров, то скорее сжиматоры могут их удалить
*

Rikh

  • Захожу иногда
  • 123
  • 1 / 0
Re: Обфускация и минимизация скриптов
« Ответ #5 : 24.11.2009, 09:24:50 »
Cамый оптимальный и надежный способ - это комбинация (минимизация + gzip)
- минимизация - это метод при котором удаляются комментарии пробелы и пустые строки, не нарушая при этом целостности кода, не сокращая переменные, поэтому код остается полностью работоспособным.
- gzip предварительное сжатие всех стилей и скриптов, без нагрузки на сервер. Скрипты можно по сжимать "тоталом", например.
А в местах подключения не забыть подописывать расширения  тра-та.js.gz

Так достигнуо сжатие встроенной библиотеки mootools до 19,5 кб.

Если не сложно расскажите пожалуйста подробнее об этом. Что и как нужно сделать. Смотрю на некоторых сайтах mootools действительно 20 кб. Сам я такого результата достичь не смог. Как только не пытался сжать не вышло. Если не сложно объясните на пальцах как и что делать надо.
Даже может готовый сжатый mootools прицепить можно. У меня Joomla 1.5.12. Очень беспокоит оценка E от Yslow. Когда на сайт заходят 30+ пользователей разом, из которых половина гости, хостер отключает сайт за превышение 10% лимита нагрузки.
Буду очень благодарен за любую помощь.
*

Darkick

  • Завсегдатай
  • 1142
  • 239 / 1
Re: Обфускация и минимизация скриптов
« Ответ #6 : 24.11.2009, 10:05:16 »
Даже может готовый сжатый mootools прицепить можно. У меня Joomla 1.5.12. Очень беспокоит оценка E от Yslow. Когда на сайт заходят 30+ пользователей разом, из которых половина гости, хостер отключает сайт за превышение 10% лимита нагрузки.
Ну в данном случае сжатие JS не поможет отбиться от хостера.
*

beliyadm

  • Легенда
  • 9758
  • 1664 / 66
  • Севастополь, Россия
Re: Обфускация и минимизация скриптов
« Ответ #7 : 24.11.2009, 10:20:00 »
Ну в данном случае сжатие JS не поможет отбиться от хостера.
сжатие нет, но оптимизация может дать несколько процентов к скорости работы сайта (объединение к примеру 10 отдельных JS в один с целью уменьшения кол-ва http запросов, тоже самое касается и CSS). А то нередко встречаешь сайты (особенно на клубных шаблонах и\или бездумная установка всех подряд расширений и на выходе по 15 js и десяток CSS грузится
Все истины, которые я хочу вам изложить, — бесстыдная ложь. Сделать всё хорошо
TLG: @Beliyadm
*

Rikh

  • Захожу иногда
  • 123
  • 1 / 0
Re: Обфускация и минимизация скриптов
« Ответ #8 : 25.11.2009, 21:57:28 »
Спасибо за советы. Поставил Web Optimizer. Все скрипты слил и сжал, тоже самое и с CSS. В итоге получил грейд "C" по Yslow. After render 0.7, запросов 23.  yes! На сайт вошло 50 человек и что я вижу, снова не дышит. Позвонил хостеру, сказали стало лучше но все равно много. Вот думаю податься куда нибудь на американский или турецкий хостинг. Знаю сайты на Joomla которые висят на турецких серверах, тяжелые как беременная слониха но летают, и не страшны им никакие тысячи запросов.  !
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться