Плохо работает Dle?Не беда,ускорим!

Тема в разделе "Прочее", создана пользователем legendary, 22 янв 2016.

  1. Гость, давай поддержим форум вместе, делись информацией с друзями через кнопки в блоке "Поделиться в социальных сетях"

    Скрыть объявление
  1. legendary

    legendary Я лишь приведение Команда форума

    Top Poster Of Month

    
    Регистр:
    10 июн 2015
    Сообщения:
    404
    Лайки:
    98
    Дизлайки:
    0
    Баллы:
    60
    Пол:
    Мужской
    Доброго времени суток, уважаемые формучане!

    Сегодня хочу рассказать вам о способах ускорения лучшего новостного (и не только) движка.
    Кто первый раз сталкивается с ним может почитать его возможности и преимущества на официальном сайте -http://dle-news.ru/
    Движок платный, но очень прост в управлении и гибок!

    Конечно, некоторые скажут что он и так очень быстрый. Действительно, он оптимизирован замечательно, создаёт минимальную нагрузку на сервер, но это не предел. В этом топике будут рассмотрены методы ускорения DLE (как ускорить DLE). Все советы применимы к актуальной версии DLE и будут успешно работать и для новых версий. По моим наблюдениям, структура DLE в последних версиях не менялась. Так же эти советы подойдут и для более поздних версий, но если у вас что-то не сработало с версией 9.0 и ниже то прошу не захламлять топик вопросами относительно старых версий, а просто обновить её до актуальной.

    Итак, начнём, но сначала проверьте свой сайт этим сервисом:

    Цитата

    http://developers.google.com/speed/pagespeed/insights/

    а то вдруг у вас всё хорошо, а я заставляю ещё что-то делать [​IMG]

    1. Кеширование данных.

    Наверное, все знают что такое кеш (или кэш) браузера. Не будем вдаваться в подробности определения этого слова. Все его не раз чистили и что такое кеш знаем. Как его использовать при ускорении движка? Очень просто! Нужно указать срок хранения различных файлов, будь то это картинки или скрипты.. Указать, сколько времени браузер должен их хранить. В этом случае кешируемые данные не будут загружаться при каждом переходе посетителя на следующую страницу сайта. При первом заходе на сайт все данные закешируются, при переходи на другие страницы сайта от получит прибавку к скорости страниц, объяснил так сказать на пальцах [​IMG]

    Для этого в корневой файл .htaccess нужно вставить данный код:

    <IfModulemod_expires.c>
    ExpiresActive on
    ExpiresDefault "access plus 1 month"
    # cache.appcache needs re-requests in FF 3.6 (thanks Remy ~Introducing HTML5)
    ExpiresByType text/cache-manifest "access plus 0 seconds"
    # html
    ExpiresByType text/html "access plus 0 seconds"
    # XML
    ExpiresByType text/xml "access plus 0 seconds"
    ExpiresByType application/xml "access plus 0 seconds"
    # RSS
    ExpiresByType application/rss+xml "access plus 1 hour"
    # Favicon
    ExpiresByType image/x-icon "access plus 1 week"
    # Картинки
    ExpiresByType image/gif "access plus 1 month"
    ExpiresByType image/png "access plus 1 month"
    ExpiresByType image/jpeg "access plus 1 month"
    ExpiresByType image/jpg "access plus 1 month"
    # HTC файлы (например css3pie)
    ExpiresByType text/x-component "access plus 1 month"
    # Нестандартные шрифты сайта
    ExpiresByType application/x-font-ttf "access plus 1 month"
    ExpiresByType font/opentype "access plus 1 month"
    ExpiresByType application/x-font-woff "access plus 1 month"
    ExpiresByType image/svg+xml "access plus 1 month"
    ExpiresByType application/vnd.ms-fontobject "access plus 1 month"
    # CSS и javascript
    ExpiresByType text/css "access plus 1 year"
    ExpiresByType application/javascript "access plus 1 year"
    </IfModule>
    # Cache-Control браузера
    <ifModulemod_headers.c>
    # 30 дней
    <filesMatch"\.(ico|pdf|flv|jpg|jpeg|png|gif|swf)$">
    Header set Cache-Control "max-age=2592000, public"
    </filesMatch>
    # 30 дней
    <filesMatch"\.(css|js)$">
    Header set Cache-Control "max-age=2592000, public"
    </filesMatch>
    # 2 дня
    <filesMatch"\.(xml|txt)$">
    Header set Cache-Control "max-age=172800, public, must-revalidate"
    </filesMatch>
    # 1 день
    <filesMatch"\.(html|htm|php)$">
    Header set Cache-Control "max-age=172800, private, must-revalidate"
    </filesMatch>
    </ifModule>
    <IfModulemod_setenvif.c>
    #Эта конструкция для говнобраузера
    #Запрет отдачи HTTP-заголовков Vary
    BrowserMatch "MSIE" force-no-vary
    BrowserMatch "Mozilla/4.[0-9]{2}" force-no-vary
    </IfModule>

    или

    <IfModulemod_expires.c>
    Header append Cache-Control "public"
    FileETag MTime Size
    ExpiresActive On
    ExpiresDefault "access plus 0 minutes"
    ExpiresByType image/ico "access plus 1 years"
    ExpiresByType text/css "access plus 1 years"
    ExpiresByType text/javascript "access plus 1 years"
    ExpiresByType image/gif "access plus 1 years"
    ExpiresByType image/jpg "access plus 1 years"
    ExpiresByType image/jpeg "access plus 1 years"
    ExpiresByType image/bmp "access plus 1 years"
    ExpiresByType image/png "access plus 1 years"
    </IfModule>


    Разбирать за что отвечает каждая строчка кода нет смысла. Стоит сказать, что первый код больше оптимизирован для DLE, но можно использовать и второй.
    2. GZIP-СЖАТИЕ

    Для включения данной функции, господа, вам нужно проследовать в админку и в настройках системы найти gzip-сжатие для js и css и активировать их. Думаю, сами найдёте?) Даже раздел вам указал.

    Дальше вам нужно включить сжатие для CSS файлов, которые, как правило, лежат в main.tpl
    Для этого найдём их, они будут у вас выглядеть примерно так:

    <linkmedia="screen"href="{THEME}/styles/bbcodes.css"type="text/css"rel="stylesheet"/>
    <linkmedia="screen"href="{THEME}/styles/slider.css"type="text/css"rel="stylesheet"/>
    <linkmedia="screen"href="{THEME}/styles/style.css"type="text/css"rel="stylesheet"/>
    <linkmedia="screen"href="{THEME}/styles/engine.css"type="text/css"rel="stylesheet"/>


    Вам нужно внимательно посмотреть на код, расположенный выше и преобразовать его в следующий:

    <linkrel="stylesheet"href="/engine/classes/min/index.php?charset=windows-1251&amp;f={THEME}/style/style.css,{THEME}/style/slider.css,{THEME}/style/bbcodes.css,{THEME}/style/engine.css&amp;7"/>

    Данный код тоже не объясняю, кому интересно спросите, персонально разъясню каждую деталь. По аналогии делается и с js-файлами, с ними должно получиться что-то в этом роде:

    <scripttype="text/javascript"src="/engine/classes/min/index.php?charset=windows-1251&amp;f={THEME}/js/libs.js,{THEME}/js/script.js&amp;7"></script>


    3. Переносим все скрипты в конец страницы.

    Задача состоит в том, чтобы перенести из верхней части страницы все скрипты - в нижнюю. Тем самым они будут инициироваться после загрузки основного содержимого. Т.е. мы убираем проблему, когда пользователь заходит на страницу и в течении 10 секунд смотрит на пустой экран (ждёт пока загрузятся все скрипты, а потом контент). Мы же сделаем чтобы сначала загрузился контент и оформление, а затем уже подгружались скрипты.

    Для этого в корне сайта открываем index.php
    Находим строчку:
    $tpl->set('{headers}', $metatags."\n".$js_array );

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

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

    Открываем main.tpl своего шаблона
    Находим {headers} и заменяем на {metatags} и удаляем {AJAX}

    Спускаемся в самый низ, находим
    </body>
    и перед ним вставляем {headers}{AJAX}

    Далее между
    {headers}{AJAX}
    и
    </body>
    подключаем все щётчики посещаемости (притом не десять(!), вам хватит и одного "ливера" ), прочие скрипты в том числе и код соц кнопок, код вк и так далее.


    4. Оптимизация изображений

    Ну, думаю тут вообще всё просто. Этот пункт так же применим ко всем движкам. Вам нужно сократить размер всех изображений. Если у вас Интернет быстрый, то проблем с их загрузкой у Вас нет. Но а как же, если он медленный? И не у вас, а у ваших посетителей? Для этого поработайте над изображениями.

    Для этого используйте (или хотя бы старайтесь использовать) изображения такого размера, которого нужно показывать на сайте. Не надо с помощью CSS изменять огромную картинку на миниатюру. Для уменьшения изображения воспользуйтесь фотошопом.
    Альтернатива фотошопу очень хорошая бесплатная программка "PaintNET". Там можно уменьшить размер изображения до нужных параметров.

    Так же в том же паинтнете при сохранении картинки есть ползунок, который может принимать значения от нудя до ста. Эта настройка - качество изображения. Поставьте, скажем, на 70. Тем самым вы уменьшите качество картинки без потери для зрения человека, и, тем самым, сократить его размер.



    В заключении проверьте свой сайт ещё раз с помощью этого сервиса


    http://developers.google.com/speed/pagespeed/insights/
     
    Chris нравится это.
Похожие Темы
  1. Pavel
    Ответов:
    1
    Просмотров:
    211
  2. Alexandr8416
    Ответов:
    5
    Просмотров:
    436
  3. mixati1995
    Ответов:
    8
    Просмотров:
    218
  4. metr4212
    Ответов:
    3
    Просмотров:
    84
  5. Islambek996
    Ответов:
    0
    Просмотров:
    109
Загрузка...