Вопрос

Минимизация HTML является единственной секцией на Скорость страницы Google где есть еще комната для улучшения.

Мой сайт все динамически, а HTML уже Deflated Таким образом, нет никаких причин поместить больше давления на сервер (я не хочу минимизировать страницы в режиме реального времени перед отправкой).

Что я мог сделать, это минимизировать файлы шаблонов. Мои шаблоны файлов - это смесь PHP и HTML Поэтому я придумал какой-нибудь код, который я думаю, довольно безопасен, но хотел бы быть пересмотренным сообществом.

// this will loop trough all template files
// php is cleaned first so that line-comments will not interfere with the regex
$original = file_get_contents($dir.'/'.$file);
$php_clean = php_strip_whitespace($dir.'/'.$file);
$minimized = preg_replace('/\s+/', ' ', $php_clean);

Это сделает мои шаблонные файлы как один очень длинный файл, чередующийся с некоторыми местами, где содержится содержимое БД. Источник домашнего страницы Google выглядит более или меньше, как то, что я получаю так, чтобы я задаюсь вопросом, следуют ли они подобным подходу.

Вопрос 1: Вы антеципатные потенциальные проблемы?
Вопрос 2: Есть ли в любом случае лучше (более эффективно для этого)?

И, пожалуйста, помните, что я не пытаюсь проверить HTML, поскольку шаблоны не являются действительными HTML (например, верхний колонтитул и нижний колонтитул включает в себя.

Редактировать: Принимайте во внимание, что файлы шаблонов будут минимизированы на развертывании. Поскольку файлы CSS и JavaScript сводится к минимуму и сжимаются с использованием компрессора и замыкания YUI, файлы шаблонов будут минимизированы как-мудрый, на развертывании. Не на клиент-запрос.

Спасибо.

Это было полезно?

Решение 4

Я бегал тесты на всех моих сайтах на пару недель, и могу сказать, что этот метод довольно последовательно. Это только повлияет на содержание шаблона, поэтому существует мало риска возиться с неизвестным <pre> или похожие.

Это бежит до Развертывание, так что на сервере нет влияния на сервер - на самом деле должен быть немного ускоренной, так как файл становится меньше.

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

Метод шворует достаточно твердые, чтобы передать его в производство.

Если что-то пойдет не так, я опубликую это здесь.

Другие советы

Собственный Шаблоны закрытия (соя) Полосы пробелов в конце строки по умолчанию, и дизайнер шаблона явно вставляет пространство с использованием {sp}. Отказ Это, вероятно, не достаточно хорошая причина, чтобы выключить от PHP, но я просто хотел привлечь его к вашему вниманию.

Кроме того, реализуйте, что HTML 4 позволяет исключить некоторые теги, как рекомендовано документацией скорости страницы на Minificate HTML (http://code.google.com/p/page-speed/wiki/minifyhtml). Вы можете исключить </p>, </td>, </tr>, и т. Д. Для получения полного списка элементов, для которых вы можете пропустить конечный тег, поиск "- O«В HTML 4 DTD (http://www.w3.org/tr/rec-html40/sgml/dtd.html). Вы даже можете пропустить <html>, <head>, <body>, и <tbody> Теги полностью, как начать, так и конечные теги являются необязательными (»O O"В DTD).

Вы также можете опустить цитаты вокруг атрибутов (http://www.w3.org/tr/rec-html40/intro/sgmltut.html#h-3.2.2), например id, class (с именем одного класса), а также type которые имеют простой контент (т. Е. Матчи /^[-A-Za-z0-9._:]+$/). Для атрибутов, которые имеют одно возможное значение, вы можете исключить значение (например, просто сказать просто checked скорее, чем checked=checked).

Некоторые люди могут найти эти советы отталкивающими, потому что мы были обусловлены настолько много лет, чтобы подготовиться к предстоящему миру простых парсеров LALR для XHTML. Таким образом, инструменты, такие как HTML TIDY Dave Raggett генерируют HTML с надлежащим закрытием и цитатами вокруг значений атрибутов. Но давайте посмотрим на него, все браузеры уже имеют анализаторы, которые понимают HTML 4, любой новый браузер будет использовать анализатор HTML 5, а не XHTML, и мы должны получить удобную запись HTML, который оптимизирован для размера.

Что говорят, помимо пары крупных компаний, таких как Google и Facebook, я предполагаю, что размер страницы - это незначительный компонент задержки, поэтому, если вы оптимизируете свой собственный сайт, это, вероятно, из-за ваших собственных навязчивых тенденций, а не производительность.

Белое пространство может быть значительным (например, в pre элементы).

Когда у меня была особенно большая страница (то есть достаточно велика, чтобы быть извлечена в министерстве HTML), я использовал HTML Tidy и кэшировать результаты.

tidy -c -n -omit -ashtml -utf8 --doctype strict \
    --drop-proprietary-attributes yes --output-bom no \
    --wrap 0

Я думаю, что вы в конечном итоге запустите проблемы с временем загрузки с таким подходом, так как содержимое Get Contents, Strip Thitespace и PREG заменить вызовы, которые затрагивают намного больше дольше, чем любая пропускная способность, которую министерзированный HTML сохраняет вас.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top