Минификация html, убираем пробелы и переносы

732
Алексей,
Минификация html, убираем пробелы и переносы

Простой способ пройти еще одну проверку от Google Pagespeed, разгрузить посетителей и место на хостинге (если используете композит)

Вставляем в init.php код:

\Bitrix\Main\EventManager::getInstance()->addEventHandler("main", "OnEndBufferContent", "removeSpacesAndTabs");

/**
 * Удаляет табы и лишние пробелы из html кода
 *
 * @param $content
 */
function removeSpacesAndTabs (&$content) {
	$content = preg_replace("/[ \t]+/", " ", $content);
}

Простыми словами. После формирования html на стороне сервере (событие OnEndBufferContent), скрипт делает замену переносов строки , отступов (табов) и пробелов на один пробел, но при условии, что не включен режим правки (перестает работать при таких заменах).

Опубликовано 28 Апреля 2018 | Обновлено 26 Декабря 2019
производительность

Возврат к списку

Похожие статьи
Правила эффективного использования кеша для статических объектов 0
Решение проблемы "Задайте правила эффективного использования кеша для статических объектов"...
Читать дальше »
Алексей,
Свойство списком или справочником 0
Сравнил производительность 2-х типов свойств. Результаты в таблице:
Читать дальше »
Алексей,
Комментарии
Михаил
22 Окт 2019
У меня при такой минимизации перестает работать часть JS кода. В чем именно может быть проблема?
Алексей
Алексей
22 Окт 2019
Михаил, убираются пробелы и переносы строк в html коде. Все js вставки лучше убрать в отдельные js файлы, либо нужно исправлять сам js код.
Михаил
22 Окт 2019
Алексей, похоже нашел проблему более детально. Связано это вероятно с комментариями. При наличии однострочных комментариев в JS, если заменить перенос каретки на пробел, часть JS кода комментируется.
Алексей
Алексей
22 Окт 2019
Михаил, да, есть такая проблема.