2012-05-03 4 views
17

Когда я впервые прочитал принцип unobtrusive JavaScript в учебном плане по веб-стандарту, я подумал, что это действительно здорово.Ненавязчивый JavaScript устарел?

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

Далее, ненавязчивый JavaScript:

  1. отделяет структуру и поведение, для того, чтобы сделать код чище и обслуживание скрипт проще

  2. фактически лишает браузер несовместимости

  3. работы с чистый, смысловой уровень HTML

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

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

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

+14

Я думаю, что это зависит от типа сайта. Новостной сайт должен показывать новости без включенного javascript. Я бы не ожидал, что работающий интерактивный сайт, например google docs или facebook, будет работать. Что еще более важно, я бы не тратил лишние деньги, чтобы сделать интерактивный сайт для небольшой части людей, которые отключили JavaScript. –

+1

@BenClayton, который должен быть ответом – Joseph

+0

Но что такое базы пользователей, в которых нет JavaScript в настоящее время? –

ответ

17

Есть два подхода к веб-сайта и использование JS:

  1. JS как повышение

    Эти типы сайтов, как «документы» в том смысле, что они аналогичны газеты, книги и письма. Вам не нужны причудливые эффекты для чтения и использования контента.И с этим поступает прогрессивное улучшение: Построение базовой функциональности и добавление сложности, не жертвуя целью.

    Большинство (больших) веб-сайтов используют эту схему, чтобы сохранить ее полезность даже при использовании браузера, не поддерживающего работу. Примером является StackOverflow, который даже работает в браузере командной строки lynx!

    ______ 
    | JS | - JavaScript for (optional) enhancements 
    |------| 
    | CSS | - CSS for (optional) style 
    |------| 
    | HTML | - (mandatory) HTML with base content 
    '------' 
    
  2. JS в качестве платформы

    Для веб-приложений, это разумно (больше как обязательный), что они строят на JS в режиме реального времени, динамического контента и функциональности в то время как HTML и CSS служит зрения , Это синоним других языков программирования, где вы можете пойти «без головы» с вашей программой (без интерфейса), например, с библиотеками и плагинами.

    Изящная деградация идет с этим подходом: «Backwards поддерживает только до определенной степени, в противном случае вы не получите ни вообще»

    ____________ 
    | HTML | CSS | - (optional) HTML and CSS view 
    |------------| 
    |  JS  | - (mandatory) JS platform 
    '------------' 
    

Это обычно сводится к вопросу «Является ли это документ или приложение? "

3

Различные компании используют разные подходы. Например, Google для их поиска использует ненавязчивый javascript, который изящно деградирует, но для GMail они поддерживают отдельный сайт HTML, который они разработали позже после версии GMail JS.

Для меня это зависит от

  1. Сложность
  2. Функциональность,
  3. Стоимость
  4. Ретинированные пользователь Количество

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