Минимизация HTML? - программирование
Подтвердить что ты не робот

Минимизация HTML?

Есть ли онлайн-инструмент, в который мы можем ввести исходный HTML- код страницы и минимизировать код?

Я хотел бы сделать это для файлов aspx, так как это не очень хорошая идея, чтобы веб-сервер gzip их...

4b9b3361

Ответ 1

Возможно, попробуйте HTML Compressor, здесь таблица до и после, показывающая, что он может делать (в том числе для самого):

Sorry, markdown has no concept of tables

Он имеет множество вариантов для оптимизации ваших страниц вплоть до минимизации сценариев (ompressor, Google Closure Compiler, ваш собственный компрессор), где это будет безопасно. Набор параметров по умолчанию довольно консервативный, поэтому вы можете начать с этого и поэкспериментировать с включением более агрессивных параметров.

Проект очень хорошо документирован и поддерживается.

Ответ 2

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

Используйте YSlow или Page Speed, чтобы определить, что вам действительно нужно сделать для оптимизации ваших страниц. Я предполагаю, что сокращение байтов HTML не будет самой большой проблемой вашего сайта. Гораздо более вероятно, что сжатие, управление кэшем, оптимизация изображений и т.д. Будут иметь большее значение для производительности вашего сайта в целом. Эти инструменты покажут вам, в чем заключаются самые большие проблемы - если вы справились со всеми из них и по-прежнему находите, что минимизация HTML имеет большое значение, сделайте это.

(Если вы уверены, что хотите пойти на это и используете Apache httpd, вы можете рассмотреть возможность использования mod_pagespeed и включения некоторых опций для уменьшения свободного пространства и т.д., Но помните о рисках.)

Ответ 3

Вот краткий ответ на ваш вопрос: вы должны минимизировать свой HTML, CSS, JS. Существует простой в использовании инструмент, который называется grunt. Это позволяет автоматизировать множество задач. Среди них JS, CSS, минимизация HTML, конкатенация файлов и многие другие.

Ответы, написанные здесь, чрезвычайно устарели или даже иногда не имеют смысла. Многое изменилось со старого 2009 года, поэтому я постараюсь ответить на него правильно.

Короткий ответ - вы должны обязательно минимизировать HTML. Это тривиально сегодня и дает примерно 5% ускорение. Для более длинного ответа прочитайте весь ответ

В старые времена люди вручную минимизировали css/js (запустив его через какой-то конкретный инструмент для минимизации). Было довольно сложно автоматизировать процесс и определенно требовали определенных навыков. Зная, что многие сайты высокого уровня даже сейчас не используют gzip (что тривиально), понятно, что люди неохотно минимизировали html.

Так почему же люди минимизировали js, а не html? Когда вы минимизируете JS, вы делаете следующие вещи:

  • удалить комментарии
  • убрать пробелы (табуляции, пробелы, переводы строк)
  • изменить длинные имена на короткие (var isUserLoggedIn для var a)

Что дало много улучшений даже в старые времена. Но в html вы не могли сменить длинные имена на короткие, также было почти нечего комментировать за это время. Таким образом, единственное, что осталось, это удалить пробелы и переводы строк. Который дает только небольшое количество улучшения.

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

Другой аргумент, почему бессмысленно заниматься минификацией, заключается в том, что это утомительно. Возможно, это было правдой в 2009 году, но после этого появились новые инструменты. Прямо сейчас вам не нужно вручную уменьшать разметку. С такими вещами, как Grunt, тривиально установить grunt-contrib-htmlmin (опирается на HTMLMinifier @kangax) и настроить его для минимизации вашего html. Все, что вам нужно, это как 2 часа, чтобы выучить хрюканье и все настроить, а затем все будет выполнено автоматически менее чем за секунду. Похоже, что 1 секунда (которую вы можете даже автоматизировать, чтобы ничего не делать с grunt-contrib-watch), на самом деле не так уж плоха для примерно 5% улучшений (даже с gzip).

Еще одним аргументом является то, что CSS и JS являются статическими, а HTML генерируется сервером, поэтому вы не можете предварительно минимизировать его. Это было также верно в 2009 году, но в настоящее время все больше и больше сайтов выглядят как одностраничное приложение, где сервер тонкий, а клиент выполняет всю маршрутизацию, создание шаблонов и другую логику. Таким образом, сервер предоставляет вам только JSON, а клиент - его. Здесь у вас есть много HTML для страницы и различных шаблонов.

Итак, чтобы закончить мои мысли:

  • Google минимизирует HTML.
  • pageSpeed просит вас минимизировать HTML
  • это тривиально
  • это дает ~ 5% улучшения
  • это не то же самое, что gzip

Ответ 4

Я написал веб-инструмент для минимизации HTML. http://prettydiff.com/?m=minify&html

Этот инструмент работает с использованием этих правил:

Все комментарии HTML удалены Пробелы символов пробела преобразуются в символы пробела Ненужные пробельные символы внутри тегов удалены Символы пробела между двумя тегами, где один из этих двух тегов не является одиночным, удаляются Предполагается, что весь контент внутри тега style является CSS и минимизируется. Предполагается, что весь контент внутри тега script является JavaScript, если только не предоставлен другой тип носителя, а затем минимизирован как таковой.
  • Минимизация CSS и JavaScript использует сильно разветвленную форму JSMin. Эта вилка расширена для собственной поддержки CSS, а также для поддержки синтаксиса SCSS. Для минимизации JavaScript поддерживается автоматическая вставка точек с запятой, однако автоматическая вставка фигурных скобок пока не поддерживается.

Ответ 5

Это сработало для меня:

http://minify.googlecode.com/git/min/lib/Minify/HTML.php

Это еще не доступный онлайн-инструмент, но, будучи простым PHP, включить его достаточно просто, вы можете просто запустить его самостоятельно.

Я бы не стал сохранять сжатые файлы, делайте это динамически, если вам действительно это нужно, и всегда лучше включить сжатие Gzip-сервера. Я не знаю, насколько это связано с IIS/.Net, но в PHP это так же тривиально, как добавление одной строки в глобальный включаемый файл.

Ответ 6

CodeProject имеет опубликованный пример проекта (http://www.codeproject.com/KB/aspnet/AspNetOptimizer.aspx?fid=1528916&df=90&mpp=25&noise=3&sort=Position&view=Quick&select=2794900) для обработки некоторых из следующих ситуаций..,

  • Объединение вызовов ScriptResource.axd в один вызов
  • Сжать все клиентские скрипты на основе возможностей браузера, включая gzip/deflate
  • ScriptMinifier для удаления комментариев, отступов и разрывов строк.
  • HTML-компрессор для сжатия всей HTML-разметки на основе возможностей браузера, включая gzip/deflate.
  • И - что наиболее важно - HTML Minifier для записи полного HTML в одну строку и минимизации его на возможном уровне (в стадии разработки).

Ответ 7

Для платформы Microsoft.NET существует библиотека под названием WebMarkupMin, которая производит минимизацию HTML-кода.

Кроме того, есть модуль для интеграции этой библиотеки в ASP.NET MVC - WebMarkupMin.Mvc.

Ответ 8

попробуйте http://code.mini-tips.com/html-minifier.html, это .NET Libary для Html Minifier

HtmlCompressor - это небольшая, быстрая и очень простая в использовании библиотека .NET, которая минимизирует заданный источник HTML или XML, удаляя лишние пробелы, комментарии и другие ненужные символы без нарушения структуры содержимого. В результате страницы становятся меньше по размеру и загружаются быстрее. Также доступна версия компрессора для командной строки.