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

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

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

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

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

/**
 * Удаляет табы и лишние пробелы из html кода
 *
 * @param $content
 */
function removeSpacesAndTabs (&$content) {
	global $APPLICATION;
	if (!$APPLICATION->GetShowIncludeAreas()) {
        	$content = preg_replace("/\s+/", " ", $content);
	}
}

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

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

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

Похожие статьи
Сайт медленнее с композитным кешем, чем без него. 0
В процессе оптимизации сайта заметил, что время загрузки до взаимодействия слишком высокое на мобиль...
Читать дальше »
Алексей,
Нативный lazyload в браузере Google Chrome 0
Достаточно добавить параметр loading="lazy" картинкам и все будет работать, проверял на эт...
Читать дальше »
Алексей,
Комментарии
Михаил
22 Окт 2019
У меня при такой минимизации перестает работать часть JS кода. В чем именно может быть проблема?
Алексей
Алексей
22 Окт 2019
Михаил, убираются пробелы и переносы строк в html коде. Все js вставки лучше убрать в отдельные js файлы, либо нужно исправлять сам js код.
Михаил
22 Окт 2019
Алексей, похоже нашел проблему более детально. Связано это вероятно с комментариями. При наличии однострочных комментариев в JS, если заменить перенос каретки на пробел, часть JS кода комментируется.
Алексей
Алексей
22 Окт 2019
Михаил, да, есть такая проблема.