ПафНутиЙ-Блог » Разное » Увеличение скорости загрузки сайта на DLE (часть 1) обновлено

Увеличение скорости загрузки сайта на DLE (часть 1) обновлено

27.08
152
42937
Увеличение скорости загрузки сайта на DLE (часть 1) обновлено


Всем известно, что DLE - один из самых быстрых движков. Но не все знают о возможности его ускорения простыми средствами.
Не верите? Просто проверьте свой сайт и вы поймёте, что он медленный.

Проверили? Медленный? Тогда эта статья для Вас.


В статье я буду рассматривать уже более-менее оптимизированный сайт, на котором скрипты и стили вынесены в файлы, а не лежат по всем шаблонам инлайново.

Оптимизация номер один - размещение скриптов на странице


Это, на мой взгляд, должно присутствовать изначально в двиге.

ВНИМАНИЕ!


Не советую производить первый шаг если не разбираетесь в подключении скриптов. Т.к. скорее всего при этом будет много ошибок js на разных страницах сайта
Первое, что проще всего сделать в чистой вёрстке для ускорения страницы - положить все скрипты в конец страницы, перед тегом </body>.
В DLE такого нет и мы это исправим.

Открываем index.php
Для DLE до версии 9.6
находим:
$tpl->set ( '{headers}', $metatags."\n".build_js($js_array, $config) );

меняем на:
$tpl->set ( '{headers}', build_js($js_array, $config) );
$tpl->set ( '{metatags}', $metatags );


Для DLE 9.6 (и скорее всего более поздних версий)
находим:
$tpl->set ( '{headers}', $metatags."\n".$js_array );

меняем на:
$tpl->set ( '{headers}', $js_array );
$tpl->set ( '{metatags}', $metatags );

Это разделит метатеги и скрипты. Иначе не получится правильно оформить страницу.

Открываем main.tpl
Находим {headers} и заменяем на {metatags}
Находим и удаляем {AJAX}
Перед </body> вставляем:
{headers}
{AJAX}

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

Оптимизация номер два - gzip-сжатие скриптов и стилей


  1. Теперь самое простое и интересное: включаем gzip-сжатие для js и css, лежащих в шаблоне.
    Для этого необходимо пройти в админку и включить сжатие js-файлов. Далее:
    Предположим у нас есть 2 файла стилей:
    <link media="screen" href="{THEME}/style/styles.css" type="text/css" rel="stylesheet" />
    <link media="screen" href="{THEME}/style/engine.css" type="text/css" rel="stylesheet" />

    Заеняем эти строки на:
    <link rel="stylesheet" href="/engine/classes/min/index.php?charset=windows-1251&amp;f={THEME}/style/styles.css,{THEME}/style/engine.css&amp;7" />

    Где:
    charset=windows-1251&amp; - указание на кодировку файла (можно удалить если нет русских символов в файле или сайт на utf-8)
    &amp;7 - количество дней, на которое кешируется файл.

    Таким же образом поступаем с перенесёнными в конец main.tpl (если всё же решили проделать первый шаг) дополнительными скриптами:
    <script type="text/javascript" src="{THEME}/js/libs.js"></script>
    <script type="text/javascript" src="{THEME}/js/somesctipt.js"></script>

    превращаем в:
    <script type="text/javascript" src="/engine/classes/min/index.php?charset=windows-1251&amp;f={THEME}/js/libs.js,{THEME}/js/somesctipt.js&amp;7"></script>

    В итоге существенно увеличивается скорость загрузки страниц. Однако нужно иметь ввиду, что при редактировании файлов необходимо очищать кеш DLE и кеш браузера.
  2. Снова проверяем сайт с помощью гугла (ссылка в начале поста) и радуемся существенному прибавлению баллов.


В следующий раз постараюсь рассказать как использовать кеш браузера для ещё большего ускорения страниц.

Похожие материалы

  • DLE-Asset — Автоматическое подключение стилей и скриптов в шаблон
  • AdequateBBcode - Адекватный bbcode-редактор для DataLife Engine 9.7 (обновлено)
  • EditRating — модуль для лёгкого редактирования рейтинга в DataLife Engine
  • Скрипт социальных закладок для DLE
Закрыть

Комментировать могут только зарегистрированные пользователи

+

Комментарии

IMP
IMP 27 августа 2012 04:38
Ответов: 0 #2096
thanks, very useful tips feel
Daiv
Daiv 27 августа 2012 05:06
Ответов: 0 #2097
да действительно давно такого не видел для DLE, хотя много и знал.
ПафНутиЙ
ПафНутиЙ 27 августа 2012 09:48
Ответов: 0 #2099
На самом деле gzip для css и js файлов появился ещё в 8.3, но в силу неизвестных мне причин не используется вебмастерами, может дело в неправильно-свёрстанных шаблонах (на оффсайта проскакивали подобные проблемы)
FaustL
FaustL 29 августа 2012 02:28
Ответов: 3 #2100
$tpl->set ( '{headers}', $metatags."n".$js_array );

Привет ПафНутиЙ! Поправь пожалуйста
FaustL
FaustL 29 августа 2012 02:29
Ответов: 2 #2101
У тебя съедается символ \
ПафНутиЙ
ПафНутиЙ 29 августа 2012 09:04
Ответов: 1 #2102
Спасибо, поправил. Странное поведение, в исходном коде сжирается исходный код ))
quato
quato 29 августа 2012 17:44
Ответов: 0 #2105
Это рекурсия ))
FaustL
FaustL 29 августа 2012 15:27
Ответов: 1 #2103
Проверил свой сайт на скорость: 67 из 100.
Следующие изображения, предоставленные с сайт_ру, необходимо объединить в CSS-спрайты, чтобы уменьшить их количество до минимального.

Друзья! Как это понять, что именно надо сделать?
ПафНутиЙ
ПафНутиЙ 29 августа 2012 16:43
Ответов: 0 #2104
на сайте много мелких картинок. если объединить их в одну (в спрайт) - это сэкономит количество запросов к серверу и ускорит загрузку сайта. По теме спрайтов гугл много что может подсказать, в т.ч. генераторы спрайтов.
quato
quato 29 августа 2012 17:45
Ответов: 1 #2106
В заголовке советую поправить "чать" на часть. Хотя возможно это именно фишка fellow
ПафНутиЙ
ПафНутиЙ 29 августа 2012 19:44
Ответов: 0 #2107
Поправил. Надо завязывать по ночам публикации делать)
TITAN-UZ
TITAN-UZ 30 августа 2012 00:16
Ответов: 1 #2108
А как оптимизировать эти:

Сжатие http://site.ru/ позволит уменьшить размер на 34.8Кб (на 79%).
Сжатие http://site.ru/engine/editor/css/default.css позволит уменьшить размер на 3.4Кб (на 75%).
Сжатие http://site.ru/engine/editor/scripts/webfont.js позволит уменьшить размер на 2.0Кб (на 66%).
ПафНутиЙ
ПафНутиЙ 30 августа 2012 09:47
Ответов: 0 #2109
помоему визуальный редактор сжимается, когда включаешь gzip не?
denis5555
denis5555 30 августа 2012 18:21
Ответов: 1 #2110
В следующий раз постараюсь рассказать как использовать кеш браузера для ещё большего ускорения страниц.


Буду ждать с нетерпением, это проблемам всех сайтов на DLE
ПафНутиЙ
ПафНутиЙ 31 августа 2012 09:28
Ответов: 0 #2111
Я сейчас пытаюсь решить проблему с nginx+apaghe+mod_expires.c - там не работает установка значений кеша в .htaccess
если же сервен на чистом апаче - проблем никаких)
Axel
Axel 1 сентября 2012 18:57
Ответов: 1 #2115
После выполнения первого пункта у меня перестает работать Ajax belay
Версия DLE 9.5.

Так же всякие скрипты типа от VK и Гугл Аналитики установлены перед </head>, как и сказано в инструкции по их установке кода. Получается что {headers} и {AJAX}нужно установить перед <head> ?
ПафНутиЙ
ПафНутиЙ 1 сентября 2012 19:03
Ответов: 0 #2116
Ну так никто и не запрещает ставить скрипты куда угодно.
Если у вас всё размещается в head - оставьте там. Единственное, что нужно учитывать - не суёта в gzip сторонние скрипты, такие как vk и аналитику.
Axel
Axel 1 сентября 2012 21:55
Ответов: 1 #2117
ПафНутиЙ,
Цитата: ПафНутиЙ
Единственное, что нужно учитывать - не суёта в gzip сторонние скрипты, такие как vk и аналитику.

Вот тут я ничего не понял :)

Так как выполнить первый пункт? Когда делаю все по инструкции, получается лажа.
ПафНутиЙ
ПафНутиЙ 1 сентября 2012 22:47
Ответов: 0 #2118
никак. его не обязательно выполнять, так же как и второй. Не получается - забейте, получится как нибудь в другой раз.
Axel
Axel 1 сентября 2012 23:20
Ответов: 5 #2119
ПафНутиЙ,
Да ну как же так)
Хотелось бы ускорить загрузку сайта)
ПафНутиЙ
ПафНутиЙ 2 сентября 2012 10:16
Ответов: 4 #2120
Тогда просто не выполняйте первый шаг. Шаги друг от друга не зависят в принципе. Это моё личное мнение, о том, что скрипты нужно грузить в конце, для ускорения загрузки страницы.
Axel
Axel 2 сентября 2012 11:14
Ответов: 3 #2121
Ну все, получилось! Не существенно, но скорость улучшилась. По гуглу оценка поднялась с 65 до 68 баллов :)
Есть еще метод увеличения скорости загрузки страницы?)

Оценка в 68 баллов, это нормально?
ПафНутиЙ
ПафНутиЙ 2 сентября 2012 23:08
Ответов: 2 #2125
68 - слабовато. Но смотря с чем сравнивать. ))
Axel
Axel 3 сентября 2012 05:44
Ответов: 1 #2127
А можете подсказать серсис для проверки скорости сервера? Имею выделенный сервер и проблем с загрузкой никогда не замечал, но все же.

68 баллов, не очень радуют меня. Хотя шаблон изначально создавал легким и быстрым. рекламных кодов нет...
ПафНутиЙ
ПафНутиЙ 3 сентября 2012 09:19
Ответов: 0 #2128
Цитата: Axel
А можете подсказать серсис для проверки скорости сервера? Имею выделенный сервер и проблем с загрузкой никогда не замечал, но все же.

Тут ничего подсказать не могу.
websot
websot 2 сентября 2012 13:43
Ответов: 0 #2123
Первый вариант когда делаешь, то заголовки начинают пропадать у всего сайта (9.6)
kabmir
kabmir 2 сентября 2012 18:14
Ответов: 0 #2124
Официальный ответ разработчика ДЛЕ:
"О том как сжимать стили и сторонние скрипты написано еще на офф. Сайте два
года назад. А переносить стандартные скрипты, из блока head в конец блока
body бессмысленно, т.к. они не запускаются до загрузки страницы и ничего не
делают. Это актуально делать только для выполняющихся скриптов, например тех
что загружают рекламу со сторонних сайтов и прочее."
ПафНутиЙ
ПафНутиЙ 2 сентября 2012 23:17
Ответов: 0 #2126
websot,
значит чтото не так деаете.

kabmir,
Это ошибочное мнение. Я уже сообщал свою точку зрения относительно библиотеки jquery, которая должна грузиться с googlecode или с сайта jquery, а из папки движка - в случаи недоступности google или jquery.com.
Целсофт не всегда слушает или слышит.
Поищите информацию об ускорении загрузки страниц - первое что вы найдёте - перенос скриптов вниз, объединение млких скриптов в один файл, картинки-спрайты и т.д.
websot
websot 3 сентября 2012 20:40
Ответов: 0 #2131
Прям на мою днюху выложил этот материал
Дополнение:
Да я просто не углядел <body> аа думал что </body> по привычке)
Буду в след. раз внимательнее.
TITAN-UZ
TITAN-UZ 6 сентября 2012 03:06
Ответов: 1 #2146
Как исключит js для модуля рейтинг комментариев! После вставки рейтинга показывает 0 до удаления кеша!

Информация

Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.