Статьи

HTML5 грязен?

На прошлой неделе я писал о Google mod_pagespeed. Некоторые функции модуля вызвали негативную реакцию в комментариях; в частности, тот факт, что mod_pagespeed может быть установлен для удаления кавычек вокруг атрибутов в вашей разметке и удаления ненужных атрибутов (таких как type="text"

Комментаторы отметили, что им неудобно иметь на сервере неверную разметку или «разрушать их благие намерения».

Ах, но это не недействительно! Или, по крайней мере, так не должно быть.

Одним из наиболее интересных (и, по крайней мере, немного спорных) аспектов спецификации HTML5 является смягчение нескольких ограничений на точный синтаксис вашей разметки. Идея заключалась в том, чтобы максимально уменьшить сложность HTML-документа при сохранении обратной совместимости. Как выясняется, браузеры всегда поддерживали атрибуты без кавычек, и они всегда по умолчанию использовали тип ввода текста при отсутствии атрибута типа (или при наличии атрибута типа, которого они не понимают; вот почему новые типы ввода, такие как "number""email" В результате самый простой входной атрибут, который полностью обратно совместим:

 <input>

Это работает в любом браузере и правильно отображает текстовое поле ввода. Вот почему авторы спецификации HTML5 пошли дальше и установили минимальный уровень, требуемый спецификацией для создания этого элемента. Кавычки вокруг значений атрибутов обязательны, только если в значении есть пробел; Имена элементов и атрибутов нечувствительны к регистру, и многие атрибуты имеют значение по умолчанию, которое будет принято, если атрибут отсутствует (это имеет место с атрибутом type входного элемента). В этом и заключается идея доктрины спартанского HTML5: минимальное количество символов, необходимое для запуска стандартного режима в старых браузерах.

Даже если вы понимаете это, разметка типа <INPUT type=text> Но, как очень хорошо утверждает Джереми Кейт в своем выступлении Fronteers 2010 , это вопрос стиля кодирования, и спецификация должна быть независимой от стиля.

Итак, возвращаясь к mod_pagespeed. Если это может улучшить вашу производительность за счет удаления ненужной массы из вашего кода таким образом, что любой когда-либо созданный браузер сможет анализировать без проблем — тогда я скажу, давайте сделаем это. Хорошая новость заключается в том, что спецификация HTML5 была разработана с учетом этого, поэтому те из нас, кто заботится о том, чтобы все было «правильно», могли обрести спокойствие.

примечание: хотите больше?

Если вы хотите узнать больше от Луи, подпишитесь на нашу еженедельную техническую новостную рассылку Tech Times .