Проанализировав главную страницу сайта я узнал что весит она где то ~1,1 мегабайт что по-моему многовато =) Один только js здесь весит 360кб! Стоит отметить плюсом этого движа что в настройках можно включать объединение и сжатие css и js файлов что существенно снижает количество отдельных соединений к серверу для получения страницы. Это конечно все хорошо, но в большинстве js содержатся также объёмные комментарии, а код не минимизирован.
Итоговый js собирается из вот этого списка файлов:
*$config['head']['default']['js'] = array( "___path.root.engine_lib___/external/jquery/jquery.js", "___path.root.engine_lib___/external/jquery/jquery-ui.js", "___path.root.engine_lib___/external/jquery/jquery.notifier.js", "___path.root.engine_lib___/external/jquery/jquery.jqmodal.js", "___path.root.engine_lib___/external/jquery/jquery.scrollto.js", "___path.root.engine_lib___/external/jquery/jquery.rich-array.min.js", "___path.root.engine_lib___/external/jquery/markitup/jquery.markitup.js", "___path.root.engine_lib___/external/jquery/jquery.form.js", "___path.root.engine_lib___/external/jquery/jquery.jqplugin.js", "___path.root.engine_lib___/external/jquery/jquery.cookie.js", "___path.root.engine_lib___/external/jquery/jquery.serializejson.js", "___path.root.engine_lib___/external/prettify/prettify.js", "___path.static.skin___/js/main.js", "___path.static.skin___/js/favourite.js", "___path.static.skin___/js/blocks.js", "___path.static.skin___/js/talk.js", "___path.static.skin___/js/vote.js", "___path.static.skin___/js/poll.js", "___path.static.skin___/js/comments.js", "___path.static.skin___/js/blog.js", "___path.static.skin___/js/friend.js", "___path.static.skin___/js/userfeed.js", "___path.static.skin___/js/stream.js", "___path.static.skin___/js/photoset.js", "___path.static.skin___/js/markup_settings.js", );
Не многовато ли? Давайте немного облегчим движку жизнь! JQuery и JQuery-UI можно отдавать с Яндекса, а остальные скрипты можно заранее минимизировать и объединить. Итак, первые две строчки мы отсюда выпиливаем (jquery подключим в шаблоне сайта), а остальные скрипты будем объединять. Я решил не задротствовать объединяя все в один скрипт и поделил их на 3 группы по названию папки. Объединял и минимизировал скрипты при помощи YUI Compressor (http://www.refresh-sf.com/yui/).
Мой конфиг получился таков:
$config['head']['default']['js'] = array( "___path.root.engine_lib___/external/jquery/markitup/jquery.markitup.js", "___path.root.engine_lib___/external/jquery/js2.js", "___path.root.engine_lib___/external/prettify/prettify.js", "___path.static.skin___/js/js.js", );
В header.tpl шаблона в секциидобавляем:
<script type="text/javascript" src="http://yandex.st/jquery/1.6.4/jquery.min.js"></script> <script type="text/javascript" src="http://yandex.st/jquery-ui/1.8.16/jquery-ui.min.js"></script>
Также для ускорения работы сайта я повыпиливал кучу плагинов с сайта оставив только самые нужные. Пробовал отключить админку AceAdmin, прирост скорости появился, но при этом перестал работать поиск (AceMySearch). Так что админку тоже пришлось включить. Такие дела =)
Добавить комментарий