Могу ли я удалить разрывы строк и пробелы из исходного кода HTML?

Помимо того, что он становится нечитаемым для людей, есть ли какие-либо недостатки, когда я удаляю все разрывы строк и пробелы из исходного кода html?

Браузеры отображают по-разному? Станет ли рендеринг быстрее (или, может быть, медленнее)?


person Aron Woost    schedule 10.05.2011    source источник
comment
возможный дубликат Почему минимизируйте активы, а не разметку?   -  person Wooble    schedule 10.05.2011


Ответы (4)


На многие вопросы о минимизации HTML уже есть ответы. Вот некоторые:

person verdesmarald    schedule 10.05.2011

У вас будет меньший размер файла, поэтому он может загружаться быстрее (хотя, вероятно, это будет незаметно). Для этого действительно существуют инструменты.

person Santiago V.    schedule 10.05.2011

Если вы удалите разрывы строк, это не повредит. Но по вашим вопросам

... когда я удаляю все разрывы строк и пробелы из исходного кода html?

Если вы удалите все разрывы строк и межстрочные пробелы, ваша цель может быть не достигнута. Вы должны удалить только лишние разрывы строк и пробелы. Также будьте осторожны, чтобы не изменить значения атрибутов формы данных или любых других атрибутов в этом отношении.

Что касается улучшений, которые он может предложить:

Он может отображаться быстрее, поскольку ему нужно анализировать меньше данных. Но это ускорение очень мало. Я даже не одобряю это, так как это снижает читабельность, а ускорение процессора составляет порядка нескольких сотен тактов. То же самое касается загрузки. Это уменьшает количество простых фрагментов данных (если в документе не слишком много пробелов).

Вместо этого лучше использовать сжатие GZIP для вывода на стороне сервера. Ниже приведена строка из php, которая включает его. Если у вас есть php на вашем сервере, просто переименуйте файл *.html в *.php , затем добавьте следующий код перед любым выводом:

if (substr_count($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip')) ob_start("ob_gzhandler");

вы также можете сделать это с помощью файла .htaccess. Google об этом больше.

person footy    schedule 10.05.2011

Немного поздно, но все же... Используя output_buffering, это так же просто:

function compress($string)
{
    // Remove html comments
    $string = preg_replace('/<!--.*-->/', '', $string);

    // Merge multiple spaces into one space
    $string = preg_replace('/\s+/', ' ', $string);   

    // Remove space between tags. Skip the following if
    // you want as it will also remove the space 
    // between <span>Hello</span> <span>World</span>.
    return preg_replace('/>\s+</', '><', $string);      
}

ob_start('compress');

// Here goes your html.    

ob_end_flush();
person Fxc Jahid    schedule 06.04.2018