HTML 5 - раннее принятие, где это возможно - хорошо или плохо? - PullRequest
16 голосов
/ 19 июня 2009

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

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

Некоторые примеры:

// new, simple HTML5 doctype (puts browsers in standards mode)
<!doctype HTML>

// new input types,  for easy, generic client side validation
<input type="email" name="emailAddress"/>
<input type="number" name="userid"/>
<input type="date" name="dateOfBirth"/>

// new "required" attribute indicates that a field is required
<input type="text" name="userName" required="true"/>

// new 'data-' prefixed attributes
// for easy insertion of js-accessible metadata in dynamic pages
<div data-price="33.23"> 
    <!-- -->
</div>
<button data-item-id="93024">Add Item</button>

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

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

Однако, несмотря на то, что все они действительны в HTML 5, они НЕ действительны для HTML 4, и на этом этапе HTML 5 все еще является черновиком.

Это хорошая идея, чтобы пойти дальше и использовать эти функции рано?

Есть ли проблемы с реализацией браузера, с которыми я не справился?

Должны ли мы сейчас разрабатывать веб-страницы, использующие черновики HTML 5?

Ответы [ 7 ]

12 голосов
/ 19 июня 2009

Есть несколько вещей, которые следует учитывать:

  1. Во-первых, проверка не так много значит, потому что HTML-страница вполне может быть действительной, но плохо написанной, недоступной и т. Д. См. Скажите нет значкам "Действительный HTML" и Отправка XHTML в виде text / html Считается вредным (в отношении веб-тестов hobo, упомянутых в другом ответе)
  2. Учитывая это, я настоятельно рекомендую использовать новый DOCTYPE: единственная причина его использования в HTML5 заключается в том, что это самая маленькая вещь, которая запускает режим стандартов в браузерах, поэтому, если вы хотите режим стандартов, используйте его; у вас практически нет причин использовать другой, подробный, подверженный ошибкам DOCTYPE
  3. Что касается улучшений форм, вы можете использовать библиотеку Weston Ruter webforms2 JS, чтобы перенести ее в неосведомленные браузеры
  4. и, наконец, насчет атрибутов data-*, он а) работает во всех браузерах (если вы используете getAttribute()), б) все же лучше, чем злоупотребление атрибутами title или class и с) не побеспокоит вас валидацией, как мы говорили ранее, что валидация не , что важно (конечно, это так, но не имеет значения, что ваша страница недействительна, если ошибки валидности являются преднамеренными; и вы уже может использовать проверку HTML5 в валидаторе W3C, так что ...); так что нет никакой реальной причины не использовать их.
2 голосов
/ 22 июня 2009

Пожалуйста, не используйте новые функции, прежде чем вы сможете протестировать их хотя бы в одном браузере. Например, если вы используете функции формы сейчас, обязательно протестируйте в Opera. В противном случае вы, скорее всего, нанесете больше вреда, чем пользы, если будете вносить вклад в отравленное наследие.

Если функция уже реализована в браузерах, и вы тестируете эти браузеры, обязательно используйте новые функции.

См. Также более старый ответ .

2 голосов
/ 19 июня 2009

Если ваша страница сильно зависит от места размещения в поисковых системах, возможно, стоит подумать, что некоторые движки отдают приоритет проверке HTML (Источник: http://www.hobo -web.co.uk / seo-blog / index.php / официально-Google-предпочитает-Валид-HTML-CSS / ).

Кроме того, стоит учесть, что использование новых элементов ввода даты (таких как элементы в Opera, возможно, других) обеспечивает больше удобства со стороны разработчика, как правило, исключает включение более сложных элементов управления Javascript, которые улучшают работу сервера. старые браузеры (обычно возвращаются к простому текстовому полю ввода).

Конечно и, как всегда, не полагайтесь на проверки на стороне браузера и проверяйте все входные данные на стороне сервера.

2 голосов
/ 19 июня 2009

Хороший вопрос!

Вкратце: это зависит от вашего контекста и толерантности к риску:)

Чуть дольше:

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

  • Если вы не хотите переписывать код или обновлять свой исходный код, раннее принятие может быть не для вас. Совершенно респектабельно хотеть писать надежный, стабильный код, который никогда не должен изменяться, но это полностью зависит от вас (и вашего бизнес-контекста)

1 голос
/ 09 июля 2009

Я не буду реализовывать новые функции из HTML, пока, по крайней мере, они не будут поддерживаться всеми основными браузерами.

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

Новые типы форм приветствуются, однако формы должны проверяться на стороне сервера.

Переход на HTML5 существующих документов потребует больших усилий и адаптации, и, по моей оценке, не произойдет в одночасье. Ожидайте, по крайней мере, 3 года, пока он не достигнет мейнстрима.

1 голос
/ 19 июня 2009

См. Принцип устойчивости :

В RFC 761 (Управление передачей Протокол, 1980) Американский компьютер ученый Джон Постел подытожил более ранние сообщения желаемого критерии совместимости для Интернет-протокол (ср. IEN 111 1 , RFC 760) следующим образом:

Реализации TCP должны следовать Общий принцип надежности: be консервативен в том, что ты делаешь, будь либеральный в том, что вы принимаете от другие .

Итак, имхо, нет.

0 голосов
/ 09 июля 2009

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

...