2010-02-16 5 views
2

У меня есть несколько веб-страниц ручной работы. При их развертывании я хотел бы запустить их с помощью инструмента, чтобы были созданы новые файлы меньшего размера, с выделением посторонних пробелов и т. Д.Оптимизация и сжатие HTML

Мы уже используем YUICompressor для нашего Javascript и нашего CSS, и мы склонны следовать всем методов, описанных командой разработчиков Yahoo.

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

+2

Yahoo performance говорит вам о gzip, вы знаете: http://developer.yahoo.com/performance/rules.html#gzip –

+0

@Valentin - Я прочитал вопрос (до того, как он был отредактирован Роджером), как «я», m уже gzipping, я ищу другие вещи, которые я могу сделать в первую очередь » – Quentin

ответ

4

HTML Tidy выполняет свою работу.

Я использую следующее на одном документе, который я генерирую (довольно большой). Это спасло меня около 10% от размера post-gzip.

tidy -c -omit -ashtml -utf8 --doctype strict \ 
    --drop-proprietary-attributes yes --output-bom no \ 
    --wrap 0 source.html > target.html 
  • -c - Заменить излишки презентационных тегов и атрибуты
  • -omit - Бросьте опциональные закрывающие тег
  • -ashtml - использование HTML, а не XHTML (HTML является более компактным и XHTML не дает никаких преимуществ для большинства случаев применения)
  • -utf8 - Поэтому нам не нужно использовать сущности для символов вне набора символов (сущности больше байтов)
  • --doctype strict - использовать Strict (опять же, компактнее)
  • --drop-proprietary-attributes yes - избавиться от патентованного хлама
  • --output-bom no - ВОМ вызвать проблемы в некоторых клиентов
  • --wrap 0 - очень длинные линии
+0

Большое спасибо. Я рассмотрю это. В свою пользу (и, возможно, некоторые из читателей) вы можете объяснить смысл различных вариантов, которые вы проходите. Еще раз спасибо –

3

Plain старый minify будет а также атаковать свой HTML для вас, если хотите.

Но HTML минификация не является, как правило, очень эффективным:

  • Взятие пробеги пробельных вниз к одному не будет делать это много. Если вы уже используете gzip/deflate, это будет довольно эффективно сжимать пробелы. Вы не можете удалить все пробелы, поскольку отдельные пробелы часто могут оказывать влияние на рендеринг, который желательно сохранить.

  • Принимая комментарии май имеет эффект, в зависимости от того, сколько комментариев у вас есть на самом деле. Но вы должны быть осторожны, чтобы не нажимать условные комментарии.

  • Кроме того, в документе HTML мало что можно «минимизировать». Очевидно, что идея JS с именами упаковочных переменных вплоть до кратчайшей строки неприменима.

  • Выполнение всего этого с помощью регулярных выражений, как это делают большинство майнинеров, немного изворотливое. Вы должны придерживаться ограниченного «нормального» диапазона разметки, который не будет его отключать.

С HTML минификацией вы обычно получать меньший прирост (и меньший прирост после GZIP), чем JS/CSS минификации, а для динамически создаваемых страниц у вас есть больше накладных расходов (так как вы не можете предварительно Минимизировать им нравятся статические сценарии/стили). Некоторые языки шаблонов могут уже иметь встроенные функции для обрезания пробелов во время генерации; если это доступно в вашей среде, используйте это.

+0

1. Посмотрев на minify. Не похоже, что он подходит для работы. Это скорее инструмент для объединения css и javascripts. 2. Как я уже сказал, наш html обрабатывается вручную, и они богаты комментариями и пробелами. они выглядят как это: ... <- вот содержание ... ->

, конечно, мы можем получить много раз за счет уменьшения их размера при развертывании , –

Смежные вопросы