Мінімізація HTML коду і CSS-JS файлів на сайті

HTML (від англ. HyperText Markup Language - «мова гіпертекстової розмітки») - стандартизований мову розмітки документів у Всесвітній павутині. Більшість веб-сторінок містять опис розмітки на мові HTML (або XHTML). Мова HTML інтерпретується браузерами; отриманий в результаті інтерпретації форматований текст відображається на екрані монітора комп'ютера або мобільного пристрою.
Мова HTML є додатком SGML (стандартної узагальненої мови розмітки) і відповідає міжнародному стандарту ISO 8879. Мова XHTML є більш суворим варіантом HTML, він слідує всім обмеженням XML і, фактично, XHTML можна сприймати як додаток мови XML до області розмітки гіпертексту. У всесвітній павутині HTML-сторінки, як правило, передаються браузерам від сервера по протоколам HTTP або HTTPS, у вигляді простого тексту або з використанням шифрування.
Найважливішою деталлю оптимізації вебресурса давно є мінімізація HTML і CSS-JS файлів які передаються браузеру в момент відвідування сайту. Утискувати можна все, HTML-код сторінок, CSS-файли і JS-файли. Дані заходи дозволяють помітно скоротити розмір підсумкового коду і трохи прискорити завантаження сайту. Мінімізація відбувається за рахунок видалення зайвих пробілів, табуляції і порожніх рядків. Розповімо, яким чином це можна робити на своїх сайтах "на льоту".
Мінімізація HTML-коду

Загляньте в вихідний код цього сайту, щоб подивитися, як це буде виглядати в результаті. Як бачите, майже весь html код сторінки не відформатований і «зібраний в купу» (про те, чому «майже», буде сказано нижче).
Реалізується це за допомогою двох невеликих вставок PHP-коду, в якому використовуються самі звичайні регулярні вирази.
Першу частину необхідно вставити в самий початок вихідного коду вашого сайту (тобто прямо перед <! DOCTYPE ...>):
<? Php / * * HTML-мінімізація * / ob_start (); ?>
А другу частину, навпаки, необхідно вставити в самий кінець вихідного коду сайту, тобто після тега </ body>:
<? Php / * * HTML-мінімізація * / $ out = ob_get_clean (); $ Out = preg_replace ( '/ (?! [^ <] * <\ / Pre>) [\ n \ r \ t] + /', "\ n", $ out); $ Out = preg_replace ( '/ {2} /', '', $ out); $ Out = preg_replace ( '/> [\ n] + /', '>', $ out); echo $ out; ?>
Важливо: При цьому вміст тега pre додано в виняток, тобто НЕ мінімізується, це необхідно для правильного відображення прикладів коду.
Що відносно підключених JS і CSS файлів, а також їх включень в код, який вставлені відповідно в тегах <script> </ script> і <style> </ style>, залишаються мінімізованими (можете побачити це в исходнике сторінок блогу).
Буду радий, якщо хтось в коментарях підкаже, як грамотно усунути цей недолік, не ламаючи при цьому працездатність скриптів.
Мінімізація CSS-файлів і JS-файлів за допомогою Minify

Для цього використовується чудовий безкоштовний інструмент Minify . Це PHP-додаток, яке кладеться в окрему папочку на сайті і через яке пропускаються всі необхідні файли.
Можна мінімізувати як окремі файли, так і згрупувати кілька файлів в один, тим самим скоротивши кількість запитів до сервера.
Підключається він просто:
- Копіюємо папку / min / в корінь свого сайту.
- Відкриваємо файл /min/config.php в текстовому редакторі і в рядку $ min_enableBuilder = false; міняємо false на true.
- Заходимо за адресою http: // ваш_сайт / min / builder / і вводимо логін і пароль admin. Відкриється інструмент для отримання посилань на файли, пропущені через мінімізатор.
- Вказуємо відносні шляхи до потрібних файлів, натискаємо «Update» і отримуємо посилання на мінімізовані версії.
- Після того, як отримали всі необхідні посилання, краще закрити доступ до билдер. Для цього в config.php назад міняємо true на false в рядку $ min_enableBuilder = true; .
Якщо у вас кілька файлів одного типу, то рекомендую скористатися угрупованням (для цього редагується файл /min/groupsConfig.php). У билдер, та й в самому цьому файлі показані приклади, як об'єднати декілька CSS або JS файлів. До речі, навіть якщо у вас всього один файл, і ви хочете при мінімізації скоротити шлях до нього, тоді теж можна використовувати угруповання.
наприклад:
- Вихідний файл - http://www.shram.kiev.ua/templates3/css/style.css
- Угруповання в groupsConfig.php:
return array ( 'Style.css' => array ( '// templates3 / css / style.css'), );
- Результат - http://www.shram.kiev.ua/min/f=/templates3/css/style.css
Є ще одна особливість Minify, яка комусь може знадобитися. На деяких серверах для коректної роботи мінімізатора необхідно в файлі .htaccess (який в папці / min /) прибрати знак # (знак коментаря) в рядку #RewriteBase / min. Директива RewriteBase встановлює базовий URL для перетворень в контексті каталогу.
Via dimox.name & wiki
Коментарі
Коментуючи, пам'ятайте про те, що зміст і тон Вашого повідомлення можуть зачіпати почуття реальних людей, проявляйте повагу та толерантність до своїх співрозмовників навіть у тому випадку, якщо Ви не поділяєте їхню думку, Ваша поведінка за умов свободи висловлювань та анонімності, наданих інтернетом, змінює не тільки віртуальний, але й реальний світ. Всі коменти приховані з індексу, спам контролюється.