Розробка, підтримка, SEO, просування, соцмережі та реклама сайтів ☣
Кабінет клієнта
Зареєструватись Забули пароль?
Розробка та створення сайтів » ДЛЕ » Хаки » Вилизуємо DLE до блиску

Вилизуємо DLE до блиску

Створюю і просуваю комерційні сайти та інтернет-магазини з 2008 року. 14-05-2015, 22:13 22 012 0
Вилизуємо DLE до блиску

Оптимізація DLE здається зайвою справою, адже  двигунчик і так реактивний smile , проте при великій кількості додаткових скриптів, хаків та модулів це стає необхідною справою.

Увага! Стаття для ДЛЕ 10-11 версій.... В 12 версії це вже не актуально!!!


1. Перенесемо скрипти в кінець сторінки:

Перше, що найпростіше зробити в чистій верстці для прискорення сторінки - покласти всі скрипти в кінець сторінки, перед тегом </ body>.
У DLE такого немає і ми це виправимо.

1.1) Відкриваємо до 10.4 - index.php, для 10.4 endgine/modules/main.php
знаходимо:

$tpl->set ( '{headers}', $metatags."\n".$js_array );


міняємо на:

$tpl->set ( '{headers}', $js_array );
$tpl->set ( '{metatags}', $metatags );


1.2) Відкриваємо шаблон main.tpl і вверху шаблону замість {headers} вставляємо {metatags}
Знаходимо і видаляємо {AJAX}.

Потім перед  </ body> вставляємо:

{AJAX}  
{headers}


Нижче цих тегів підключаємо всі скрипти, що підключаються до шаблону, інакше втрачається сенс оптимізації.

2. Стискаємо скрипти та стилі:

Оптимізація номер два - gzip-стиснення скриптів і стилів
Для цього необхідно пройти в адмінку - Оптимізація і включити "
Увімкнути Gzip-компресію 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&f={THEME}/style/styles.css,{THEME}/style/engine.css&7" />

ДЕ:
charset=windows-1251& - вказане кодування сайту.
&7 - кількість днів на які кешується.


У підсумку істотно збільшується швидкість завантаження сторінок. Однак потрібно мати на увазі, що при редагуванні файлів необхідно очищати кеш DLE і кеш браузера.

УВАГА! При перенесені скриптів в кінець сторінки можливо, що перестануть працювати деякі модулі, наприклад чат.

3. Заставляємо браузер кешувати наш сайт.

Якщо користувач зайшов на сайт - завантажилися до прикладу 4 скрипта по 10кб - це 40Кб, начебто не страшно, однак при кожному переході по сторінках сайту браузер буде завантажувати ці скрипти знову і знову, тому що думає, що скрипт оновлюється при кожному зверненні до нього. Тому логічно "сказати" браузеру, що б він перевіряв не оновиться цей скрипт не при кожному зверненні, а лише раз на місяць або раз на рік.

 

3.1) Відкриваємо .htaccess  і вставляємо в самий початок:


<IfModule mod_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 и jаvascript
ExpiresByType text/css "access plus 1 year"
ExpiresByType application/jаvascript "access plus 1 year"
</IfModule>
# Cache-Control браузера
<ifModule mod_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>
<IfModule mod_setenvif.c>
#Эта конструкция для говнобраузера
#Запрет отдачи HTTP-заголовков Vary
BrowserMatch "MSIE" force-no-vary
BrowserMatch "Mozilla/4.[0-9]{2}" force-no-vary
</IfModule>

Представлений код - результат збору даних з різних джерел та оптимізації його під DLE. Для підключення його потрібно вставити в самий початок файлу .htaccess і оновити кеш в адмінці.

 

4. Включаємо кеш для гостей:

В папці /engine/cache/ створюємо папку fcache и ставимо на неї права 777
Відкриваємо файл index.php
Находимо:

define ( 'DATALIFEENGINE', true );

Вище добавляємо:

if( $_SESSION['dle_user_id'] == false && $_SERVER['REQUEST_METHOD'] == "GET" )
{
$fcache = $_SERVER['DOCUMENT_ROOT'] . '/engine/cache/fcache/' . md5( $_SERVER['REQUEST_URI'] ) . '.html';
if ( file_exists( $fcache ) && filemtime( $fcache ) > time() - 3600*3 ) exit( file_get_contents( $fcache ) );
}

Находимо:

GzipOut();

Вище добавляємо:

if( $_SESSION['dle_user_id'] == false && $_SERVER['REQUEST_METHOD'] == "GET" )
file_put_contents( $fcache, ob_get_contents() );

3600*3 — означаеє что час життя кеша 3 години.

Увага! У Вас немає прав для перегляду прихованого тексту.

laughing Підгледів інфу у Пафнутого.

 
 

Розробка сайтів | Створення сайтів

Коментарі

⤹ Залишити свій коментар ⤸

  • Натисніть на зображення, щоб оновити код, якщо він нерозбірливий
Останнє на сайті
  • seo

    Українські каталоги для реєстрації сайту

    coments/16 vievs/ 1
  • faq

    Які існують російські домени?

    coments/15 vievs/ 0
  • seo

    Українська двигун для сайту - Ardilla-CMS

    coments/106 vievs/ 0
Останнє в магазині
Картинка в meta з додаткового поля Картинка в meta з додаткового поля / Платні модулі DLE
Коментарі
Популярне на сайті

Для усіх любителів Анекдотів українською існує чудовий сайт з безліччю приколів, смішних історій та відео: Анекдоти

Тарифні плани

Потужний старт Стандартний запуск сайту від $400
  • - ♜ -
  • В стартовий тарифний план входить:

  • Розробка та налаштування сайту
  • Семантичне ядро
  • Оптимізація швидкості
  • Наповнення до SEO 5 сторінок
  • Ліцензія двигунчика DLE
Просунутий SEO оптимізований сайт від $700
  • - ♚ -
  • В SEO тарифний план входить:

  • Створення та налаштування сайту
  • Семантичне ядро
  • Оптимізація швидкості
  • Наповнення до SEO 10 сторінок
  • Ліцензія двигунчика DLE
  • 5 силок + перелінковка
Імперський винущувач конкурентів від $999
  • - ♛ -
  • В імперський тарифний план входить:

  • Розробка сайту
  • Наповнення до SEO 20 сторінок
  • Повна оптимізація
  • Ліцензія двигунчика DLE
  • МОЄ НАТХНЕННЯ та ДОСВІД!
/* soc-knopki */