HTML 5 - Раннее внедрение, где это возможно - хорошо или плохо?

StackOverflow https://stackoverflow.com/questions/1016515

Вопрос

Этот вопрос был немного навеян этот вопрос, в котором наиболее поддержанный ответ рекомендовал использовать функцию из 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?

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

Решение

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

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

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

    Короче говоря:это зависит от вашего контекста и толерантности к риску :)

    Немного длиннее:

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

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

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

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

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

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

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

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

    См. Принцип надежности :

      

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

         

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

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

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

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

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

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

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

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