Могу ли я удалить разрывы строк и пробелы из исходного кода HTML? - PullRequest
0 голосов
/ 10 мая 2011

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

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

Ответы [ 4 ]

1 голос
/ 10 мая 2011

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

0 голосов
/ 06 апреля 2018

Немного поздно, но все же ... С помощью 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();
0 голосов
/ 10 мая 2011

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

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

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

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

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

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

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

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

0 голосов
/ 10 мая 2011

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

...