Подтвердить что ты не робот

Разница между навязчивым и ненавязчивым javascript

В чем разница между навязчивым и ненавязчивым javascript - на простом английском. Краткость оценивается. Также приветствуются короткие примеры.

4b9b3361

Ответ 1

Разделение проблем. Ваш HTML и CSS не привязаны к вашему JS-коду. Ваш JS-код не является встроенным в какой-либо элемент HTML. У вашего кода нет одной большой функции (или не-функции) для всего. У вас короткие короткие функции.

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

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

Не строите горы мусора, когда вам нужно только сделать что-то маленькое. Люди бесконечно усложняют свой код, повторно выбирая элементы DOM, разбираются в семантическом HTML и бросают нумерованные идентификаторы там и другие странные вещи, которые происходят из-за того, что они не понимают модель документа или какой-либо другой бит технологии, поэтому они полагаются на "магические" уровни абстракции, которые замедляют все до скорости мусора и приводят в горы над головой.

Ответ 2

Никакой javascript в отмеченном виде не является ненавязчивым:

<div id="informationHeader">Information</div>

навязчивый:

<div onclick="alert('obstrusive')">Information</div>

Ответ 3

  • Разделение HTML и JavaScript (определение вашего JavaScript во внешних файлах JavaScript)
  • Изящная деградация (важные части страницы по-прежнему работают с отключенным JavaScript).

Для длинного объяснения, посмотрите страницу Википедии по этому вопросу.

Ответ 4

Чтобы расширить ответ Майка: использование поведения UJS добавляется "позже".

<div id="info">Information</div>

... etc ...

// In an included JS file etc, jQueryish.
$(function() {
    $("#info").click(function() { alert("unobtrusive!"); }
});

UJS также может подразумевать нежную деградацию (мой любимый вид), например, другое означает перейти к функциональности щелчка #info, возможно, предоставив эквивалентную ссылку. Другими словами, что произойдет, если нет JavaScript, или я использую программу для чтения с экрана и т.д.

Ответ 5

ненавязчивый - "не навязчивый, незаметный, беззастенчивый или сдержанный".

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

натура - "надвигать (что-то) вперед или на человека, особенно без ордера или приглашения"

Итак, говоря о наложении одного мнения, на мой взгляд, самая важная часть ненавязчивого JavaScript заключается в том, что с точки зрения пользователя он не мешает. То есть, сайт будет работать, если JavaScript отключен настройками браузера. С включенным или включенным JavaScript, сайт будет по-прежнему доступен людям, использующим устройства для чтения с экрана, клавиатуру и мышь, а также другие инструменты для доступа. Возможно (возможно), сайт не будет таким "причудливым" для таких пользователей, но он все равно будет работать.

Если вы думаете, что в терминах "прогрессивного улучшения" функциональность вашего сайта будет работать для всех независимо от того, как они к ней обращаются. Затем для пользователей с включенным JavaScript и CSS (большинство пользователей) вы улучшаете его с помощью более интерактивных элементов.

Другим ключевым "ненавязчивым" фактором является "разделение проблем", о чем программисты заботятся, а не о пользователях, но это может помешать тому, чтобы стороны JavaScript не навязывали себя опыту пользователей. С точки зрения программиста, избегая встроенного script, как правило, сделать разметку намного красивее и проще в обслуживании. Как правило, гораздо проще отлаживать script, который не разбросан по кучке встроенных обработчиков событий.