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

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

27.08
153
62 240
Увеличение скорости загрузки сайта на 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. Снова проверяем сайт с помощью гугла (ссылка в начале поста) и радуемся существенному прибавлению баллов.


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

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

Комментарии

TITAN-UZ
TITAN-UZ 6 сентября 2012 04:11
Все решил проблему! Надо било отключит кеширование комментариев на сайте.
Cinema-Мир
Cinema-Мир 9 сентября 2012 11:26
положить все скрипты в конец страницы, перед тегом <body>.

Перед <body> вставляем:
Таким же образом поступаем с перенесёнными в конец main.tpl дополнительными скриптами:


Паш, или ты тут что-то напутал, или я чего-то недопонимаю.
Может имеется ввиду тег </body>?
ПафНутиЙ
ПафНутиЙ 10 сентября 2012 06:56
так и есть )
AndreY_ZO_o
AndreY_ZO_o 16 сентября 2012 14:42
До того как всё было до тега <body> - всё было ок.
Но после того, как в инструкции было изменено на </body> и я всё перенёс до данного тега - появилась некорректная работа вкладок. Перенёс {headers} и {ajax} до <body>, а все остальные скрипты и стили оставил перед </body> Так можно?
AndreY_ZO_o
AndreY_ZO_o 16 сентября 2012 14:46
Столкнулся с данной проблемой на одном сайте. На других 3х всё ок - т.е. перед </body> всё работает нормально, сначала подгрузка контента, а потом, стили и скрипты.
ПафНутиЙ
ПафНутиЙ 17 сентября 2012 10:49
Лучше не переносить тогда, если отваливается.
Kelly_Jenko
Kelly_Jenko 18 сентября 2012 00:16
Помогите, пожалуйста. Застрял на первом шаге. У вас написано "открываем index.php"! А какой именно index.php открывать? Тот, где находится шаблон или же из главной директории? Но проблема еще и в том, что ни по первому пути, ни по второму нету кода, который следует изменить на предлагаемый вами. Как быть?
ПафНутиЙ
ПафНутиЙ 18 сентября 2012 06:58
в DLE имеется лишь один imdx.php и располагается он в корне сайта. и строк таких там просто не может не быть.
Kelly_Jenko
Kelly_Jenko 18 сентября 2012 23:17
Ох уж моя невнимательность. Сказано index.php, а я качаю index.html feel
Chessman
Chessman 20 сентября 2012 13:44
была скорость 78. на каждом этапе проверял изменения после включения сжатия скорость увеличилась до 91
ПафНутиЙ
ПафНутиЙ 20 сентября 2012 14:12
Отлично! ) значит всё хорошо.
wincloa
wincloa 20 сентября 2012 23:36
Я по первому пункту, (в теге head находтся код аналитики и сразу после body код для отображения кнопки facebook) с этим кодами нужно что-то делать?
Kelly_Jenko
Kelly_Jenko 27 сентября 2012 11:50
Пафнутий, а как прописывать файлы движка для gzip сжатия? Прописывать прямым путем (http://site.com/engine/.../file.js) и без ссылки на ресурс (/engine/.../file.js), но результата не было.

С файлами шаблонов просто. Поставил {THEME} и проблема решена.
ПафНутиЙ
ПафНутиЙ 27 сентября 2012 12:01
Файлы движка сами сжимаются при включении gzip
Kelly_Jenko
Kelly_Jenko 27 сентября 2012 12:20
Если бы - http://clip2net.com/s/2l8HR
ПафНутиЙ
ПафНутиЙ 27 сентября 2012 19:58
а в настройках двжка точно включено сжатие js?
Kelly_Jenko
Kelly_Jenko 27 сентября 2012 21:12
request Вот черт, действительно. Сегодня лазил там и видать забыл обратно его включить. :)
win
win 28 сентября 2012 02:05
Уважаемый, Панфутий!
Давненько следим за вами, мозги у вас есть, но они к сожалению не всегда срабатывают в нужном русле.
От сюда просьба, не ебите себе и людям мозг таким псевдо "увеличением скорости загрузки сайта".
Ну и попутно отвечу на тему почему не используется вебмастерами gzip для css и js, всё потому, что, из-за долей секунды загрузки пользователем страницы, никто не хочет насиловать свои сервера. Особенно когда посещаемость переваливает за 100к в сутки.
Спасибо, пожалуйста.
ПафНутиЙ
ПафНутиЙ 28 сентября 2012 07:41
Вы это гуглу скажите))
Может я что-то не понимаю, но каким образом правильно настроенный gzip может нагружать сервер? Ведь создаётся 1 (иногда два-три) файл вместо нескольких, весит он меньше, кешируется браузером. К тому же создаётся раз в неделю или месяц (как настроить). Где нагрузка? Поясните.
Cinema-Мир
Cinema-Мир 29 сентября 2012 02:01
насколько я понимаю нагрузка идет на проц, именно потому что ему приходится для каждого посетителя паковать файлы - хотя, вполне возможно я что-то не правильно понимаю)))
ПафНутиЙ
ПафНутиЙ 29 сентября 2012 10:14
Нагрузка идёт в тот момент, когда gzip создаётся, потом он превращается в статический файл и просто отдаётся сервером как статика, к тому же в браузерный кеш попадает.
kabmir
kabmir 30 сентября 2012 17:07
Если говорить о хорошей оптимизации, то и файлы стилей сливаются в один, т.е.: styles.css + engine.css = вывод одного сжатого файла стилей на сайте!
websot
websot 30 сентября 2012 17:29
Слушайте, а можно сделать допустим так..
Сжать файлы самого движка, т.е. те файлы, которые мы никогда не редактируем.
abasive
abasive 17 октября 2012 02:53
Сделаете пожалуйста первый шаг для версии 9.7
ПафНутиЙ
ПафНутиЙ 17 октября 2012 07:38
А что не так с 9.7 ?
Daiv
Daiv 17 октября 2012 10:50
Да 9.7 все так же просто нужно ручками искать либо пусть Пафнутый укажет номер строки.
ПафНутиЙ
ПафНутиЙ 18 октября 2012 08:29
Номер строки у разных сайтов может быть разным. Смысла в нём нет.
v-boldyrev
v-boldyrev 18 октября 2012 09:56
Подскажите почему после выполнения двух шагов у меня перестал работать слайдер в шапке? Скорость загрузки увеличилась с 67 до 75. Шаблон dle 9.6 стандартный Gemini
abasive
abasive 18 октября 2012 12:51
Слайдер не работает, после первого шага.
abasive
abasive 18 октября 2012 12:56
И так все ясно, проблема в другом.

Добавить комментарий

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

Информация

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