Полезна ли постепенная деградация при отсутствии JavaScript?

Когда даже в мобильных браузерах есть JavaScript, действительно ли нужно учитывать потенциальных пользователей без скриптов?


person leeand00    schedule 12.08.2009    source источник


Ответы (15)


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

Забудьте сумасшедших, отключающих Javascript; подумайте о роботах!

person Nelson    schedule 12.08.2009
comment
Я предполагаю, что у подавляющего большинства моих пользователей-людей будет включен JavaScript, я не делаю того же предположения о сторонних приложениях / ботах / пауках. Большинство расширенных функций JS, которые я использую, не влияют на семантику разметки или содержимого страницы. На мой взгляд, обеспечение доступа к страницам для ботов / приложений - это совершенно отдельная проблема от постепенной деградации JavaScript. Это еще более верно сейчас, когда W3C принял использование RDFa в качестве официальной рекомендации. - person Mark; 15.08.2009
comment
Неужели в наше время действительно считается безумием запускать браузер с плагином NoScript или отключать Javascript? Я до сих пор не видел никаких признаков того, что JavaScript эволюционировал, чтобы справиться с большинством своих исходных уязвимостей. - person Jeff Leonard; 25.08.2009
comment
И после того, как я попытался использовать healthcare.gov сегодня, я должен сказать, что действительно важно, чтобы ваше приложение работало без Javascript, я подумал, что, может быть, я смогу ускользнуть с Lynx. (ну, вы можете перекомпилировать его ... но все же!) - person leeand00; 10.10.2013

да.

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

Насколько актуально, конечно, зависит от вашей целевой аудитории.

person Adam Bellaire    schedule 12.08.2009
comment
особенно, если ваша целевая аудитория включает людей, использующих программы чтения с экрана или другие специальные устройства. - person Ball; 12.08.2009
comment
@Adam Bellaire - люди любят, но не должны, учитывая выбор. - person karim79; 12.08.2009
comment
@ karim79 - Почему ты говоришь мне, как мне просматривать? Я не знал, что браузеры имеют моральный долг. - person David Thornley; 12.08.2009
comment
@ Дэвид Торнли - Я не говорил вам (или кому-то еще), как вы / они должны просматривать. Моя точка зрения была примерно такой: «... не выключайте JS и ожидайте, что все будет так же красиво». Я не могу ожидать, что моя машина будет работать так же хорошо, если я уберу 3 цилиндра и гидроусилитель руля - и я не ожидаю, что автомобильная компания учла это в своем дизайне. - person karim79; 12.08.2009
comment
@ karim79 - Хорошо, вы предлагаете изящную деградацию, так что я, по крайней мере, имею представление о том, во что я ввязываюсь, когда включаю Javascript. Я согласен. - person David Thornley; 12.08.2009
comment
Проблема заключается в сайтах, которые полностью ломаются при выключении JS. В этом весь смысл рассмотрения разработки веб-интерфейса как прогрессивного улучшения, когда у вас есть базовый уровень функциональности, который улучшается с включенным JS. Слишком много сайтов предполагали поддержку JS с самого начала и загнали себя в угол, где это абсолютно, 100% требуется для того, чтобы любая функциональность работала. И это проблема. - person Matt Howell; 13.08.2009

Я бы сказал, что вам не следует сильно изо всех сил стараться приспособиться к пользователям, не использующим JS, по следующим причинам:

  • Все современные браузеры поддерживают JS

    Это снимок использования браузера сегодня:

    http://www.w3schools.com/browsers/browsers_stats.asp

    Даже самый старый из распространенных браузеров IE6 поддерживает базовый JavaScript и AJAX. Если вы решите не интегрировать определенные функции b / c зависимости JS, это доказывает, что вы, по сути, делаете это для людей, которые начали с включенным JavaScript и явно решили отключить его. Я думаю, этим людям следует ожидать, что некоторые функции и, возможно, даже целые сайты, как следствие, не будут работать.

  • Некоторые люди охотно отключают JS

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

  • Стоимость поддержки

    В свете вышеизложенного учтите, что решение разместить пользователей, которые в первую очередь добровольно отключили JS, обходится очень дорого. Если вы управляете большим проектом с высокими требованиями к пользовательскому интерфейсу, вы можете легко сжечь много часов разработчика, приспособившись к очень маленьким пользовательским предпочтениям. Проверьте свой бюджет. Если для выполнения этого подвига потребуется 2 разработчика, каждый из которых будет работать над проектом по 40 дополнительных часов, вы легко потратите несколько тысяч долларов на то, что по сути не является проблемой для подавляющего большинства ваших пользователей. Как насчет того, чтобы использовать это время и инвестиции для дальнейшего повышения своей основной компетенции?

  • Приоритет

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

ПЕЩЕРЫ:

Знайте свой рынок. Продолжайте создавать семантический XHTML / CSS (желательно, используя рекомендацию RDFa W3C). По-прежнему стремитесь сделать свои сайты доступными для слабовидящих. Не верьте всему, что читаете. ;)

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ:

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

person Mark    schedule 12.08.2009
comment
Кроме того, многие компании отключают Javascript из соображений безопасности. Таким образом, даже технически неопытные люди могут столкнуться с вашими предпочтениями в области технологий, если вы используете Javascript. - person Chuck; 12.08.2009
comment
Я считаю, что это вопрос знания вашего рынка. Если ваша веб-служба нацелена на людей, которые работают в крупных корпорациях со строгими политиками доступа в Интернет, у вас, вероятно, будет больше стимулов для изящной деградации. Однако, если вы готовы уступить человеку в этом вопросе, будьте готовы отказаться от встроенного Flash, форумов, чатов и т. Д. Лично я не считаю это серьезной проблемой - пользователи, которые работают на железные руки Корпорация либо найдет альтернативные методы доступа, либо будет использовать персональные компьютеры после работы. - person Mark; 15.08.2009

Это актуально и будет актуально даже через 10-20 лет, когда javascript можно будет поддерживать повсюду. заставить вещи работать без javascript - важный метод разработки, потому что он заставляет вас делать вещи простыми и declarative. в идеале javascript следует использовать только для улучшения восприятия, но ваш веб-сайт не должен зависеть от этого.

есть явное преимущество с точки зрения обслуживания - иметь большую часть кода в декларативном формате (html + css) и как можно меньше в императивном (javascript).

person lubos hasko    schedule 12.08.2009
comment
Значит, вы сохраняете декларативность и жертвуете функциональностью? например проверка ввода и т. д.? Это кажется значительной потерей. - person Brian Agnew; 12.08.2009
comment
вам совсем не нужно (и не следует) жертвовать хорошим пользовательским интерфейсом. если вы хотите иметь проверку ввода на стороне клиента, вы можете ее использовать, но ее следует рассматривать только как подключаемый модуль к существующей функциональной разметке html. - person lubos hasko; 12.08.2009

Моя позиция:

Я просматриваю страницы с помощью NoScript, поэтому, если я зайду на ваш сайт, я не буду использовать Javascript. Я не ожидаю полноценного взаимодействия с пользователем.

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

Это означает, что если вы действительно хотите, чтобы я использовал ваш сайт, вы должны позволить мне осмотреться, используя ссылки. (Если я вижу сайт, который совершенно бесполезен без Javascript, я обычно думаю, что дизайнеры были некомпетентны.) Вы должны сообщить мне, какие функциональные возможности я получу от включения Javascript, и вы должны представить сайт в правильном виде. .

Я не думаю, что это слишком много, чтобы спрашивать.

person David Thornley    schedule 12.08.2009

изящная дегадация / прогрессивное улучшение / ненавязчивый javascript абсолютно актуален!

как и со всеми проблемами доступности: просто представьте на одну секунду, каково это быть тем, кто не может использовать страницу.

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

Представьте, какой мир возможностей открывается слепым людям с помощью программ чтения с экрана и Интернета, и представьте, каково это, когда эти возможности снова закрываются из-за JavaScript.

так много для обращения к вашей лучшей природе.

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

person bjelli    schedule 12.08.2009

Да, актуально. В мобильных браузерах, используемых сегодня, не включен Javascript. Конечно, это доступно на новых телефонах. Но есть миллионы и миллионы людей, подобных мне, у которых есть телефоны с более старыми браузерами, и для всех нас работа в браузере, требующая JS, просто нарушена.

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

person Matt Howell    schedule 12.08.2009
comment
У меня есть iPhone, и есть много сайтов (включая переполнение стека), на которых есть раздражающие причуды, вызванные javascript, так что проблема не только в старых телефонах. - person FinnNk; 21.11.2009

Это зависит от того, кто ваша целевая аудитория. У меня по умолчанию отключен JavaScript, и я включаю его, когда знаю, в чем смысл сайта.

person kemiller2002    schedule 12.08.2009
comment
Как адвокат дьявола я должен указать вам на тот факт, что вы, вероятно, не обычный пользователь и в 99% случаев не целевая аудитория. Тем не менее, я делаю свои сайты несовместимыми с JS, потому что я идеалист;) - person Boris Callens; 13.08.2009

Обычно намного быстрее просматривать с отключенным Javascript (digg.com без JS молниеносно), поэтому он популярен.

В Opera это действительно просто: вы просто нажимаете F12 и снимаете галочку с опции javascript. Я всегда просматриваю страницы без Flash, Java (не javascript), анимированных изображений и звука. Я включаю Flash для отдельных сайтов, например YouTube. Иногда я временно отключаю JS, если моя система тормозит.

И не забывайте про:

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

Решение состоит в том, чтобы использовать прогрессивное улучшение, а не постепенное ухудшение, то есть начать с базового HTML и добавить CSS. Затем добавьте Javascript и / или AJAX к частям сайта.

Например, если у вас есть такой сайт, как Stack Overflow, голосование за ответ может отправить форму обычным образом. Если JS включен, он выполнит запрос AJAX, обновит счетчик голосов и отменит отправку формы, не покидая страницы. ТАК этого не делает ...

person DisgruntledGoat    schedule 12.08.2009

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

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

Для незнакомых есть несколько интересных записей в блогах на эту тему:

person Rich Seller    schedule 12.08.2009

Я собираюсь привести аргументы в пользу другой стороны. Причины, по которым люди создают сайты без javascript, в значительной степени идеалистичны. Если у вас достаточно времени и денег, и цель достижима, ваш сайт обязательно откроется для максимально возможного количества людей. Однако на самом деле это замедлит вашу разработку, увеличит количество тестовых примеров, с которыми вам придется иметь дело, и в конечном итоге повлияет на качество вашего приложения для тех пользователей, которые действительно используют javascript.

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

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

person Jack Ryan    schedule 12.08.2009

На самом деле вопрос не в том, актуально ли это, а в том, использовать ли в качестве стратегии создания сценариев Graceful Degradation или Progressive Enhancement.

person Matthew Vines    schedule 12.08.2009

На самом деле, когда дело касается постепенной деградации JS, я нахожусь в интересном положении. Я работаю над веб-приложением, в которое боты и сканеры не имеют никакого отношения. Там нет ничего, что можно было бы проиндексировать.

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

В веб-приложении, если у вас не включен JavaScript, вы, вероятно, не должны там присутствовать. Он предназначен для насыщенного интерактивного опыта. Веб-приложение на самом деле требует, чтобы JS был включен, и чтобы вы не сидели за корпоративным брандмауэром.

Мы не обслуживаем ничего вредоносного, это просто наши намерения и цели для веб-приложения. Цели нашего веб-приложения и нашего информационного сайта совершенно разные.

person Patrick    schedule 21.07.2010

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

Также бывают случаи, когда:

  • Некоторые скрипты загружаются, а другие не работают, и в этом случае части веб-сайта перестают работать.
  • Сценарии загружаются, но я хочу нажать кнопку «Отправить», не дожидаясь этого причудливого меню с оборками.
  • Сценарий не работает, потому что он был частично загружен, а затем кэширован на этом полуэтапе.
  • Я так тороплюсь, что просто решаю использовать Lynx.

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

person Hippo    schedule 04.06.2019

Если вы не хотите, чтобы страница работала, когда Javascript выключен, просто оставьте это сообщение в html, а если javascript включен, используя ненавязчивый javascript, вы можете избавиться от этого сообщения и сделать видимой остальную часть приложения.

В зависимости от того, для чего вы пишете, с точки зрения версии javascript, вам может потребоваться деградация, если в браузере пользователя не установлена ​​последняя версия, поэтому изящная обработка также важна.

person James Black    schedule 12.08.2009