Минификация (сжатие) исходного кода (HTML) в 1C-Bitrix
661
Для ускорения загрузки сайта необходимо уменьшить количество бесполезной информации, передаваемой от сервера к клиенту. На выходе Битрикс генерирует html-код, в котором много лишних переносов сток, табуляций и пробелов. Чтобы исправить данную ситуацию, нужно в /bitrix/php_interface/init.php файл внести следующие строки (перед модификацией настоятельно рекомендую сделать резервную копию init.php файла): // Удаляем лишние пробелы и пустые строки в html перед выводом пользователю
AddEventHandler("main", "OnEndBufferContent", "ChangeMyContent");
function ChangeMyContent(&$content){
$content = sanitize_output($content);
}
function sanitize_output($buffer){
$search = array(
'/\>[^\S ]+/s', //strip whitespaces after tags, except space
'/[^\S ]+\</s', //strip whitespaces before tags, except space
'/(\s)+/s' // shorten multiple whitespace sequences
);
$replace = array(
'>',
'<',
'\\1'
);
$blocks = preg_split('/(<\/?pre[^>]*>)/', $buffer, null,
PREG_SPLIT_DELIM_CAPTURE);
$buffer = '';
foreach($blocks as $i => $block){
if($i % 4 == 2)
$buffer .= $block; //break out <pre>...</pre> with \n's
else
$buffer .= preg_replace($search, $replace, $block);
}
return $buffer;
} |
Последние записи
|