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

Стоит ли кодировать различные функции для пользователей с отключенным javascript?

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

a) Используйте простой javascript, те, кто с ним отключен, пропускают

b) Не используйте простой javascript, пользователи с его поддержкой должны нажать немного больше

c) Код как функции javascript, так и javascript-disabled

Я не уверен, что сеть всегда меняется, что вы рекомендуете?

4b9b3361

Ответ 1

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

Ответ 2

Все остальные высказали хорошие комментарии, но есть еще несколько соображений.

Иногда javascript будет размещаться в другом домене и подвержен таймауту.

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

По этой причине следует избегать "блокировки" сценариев (то есть: запись документа в строке), подобных тому, что присутствует в google tracker, или, по крайней мере, должно быть как можно ближе к странице, чтобы страница отображала или нет домен запрашивает время или нет.

Если вы случайно используете JS с поврежденного/злонамеренного сервера, с помощью намерения или случайно, можно остановить отображение страницы, просто используя script, который обслуживает этот javascript, который просто вызывает "sleep (forever)" после его отправил все заголовки.

Некоторые люди используют NoScript

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

Однако, если сайт плохо разработан, неудача одного script для загрузки все еще выполняет код, зависящий от присутствующего script, который выдает ошибки и останавливает все, что работает.

Моя рекомендация:

  • Использовать Firebug
  • Использовать NoScript и блокировать все → См. Сайт все еще работает
  • Включить скрипты основного сайта, которые вы не можете сделать без чего-либо. > См. сайт по-прежнему работает, и firebug не скулит.
  • Включить сторонний материал → См. сайт по-прежнему работает, и firebug не скулит.

Есть много других осложнений, которые могут возникнуть, но удовлетворение вышеуказанных 2 должно решить большинство из них. Просто предположите, что по какой-то причине один или несколько ресурсов, которые составляют страницу, жизнеспособны, чтобы спонтанно исчезать (они все время), и вы хотите, чтобы страница "выдержала" эту проблему как можно более дружелюбно. Для проблем, которые могут сохраняться для < 10 секунд, это не так уж плохо, обновите страницу и зафиксируйте ее, но если это проблема, которая может произойти, и в конечном итоге затруднит удобство использования в течение часа или более за раз.

В сущности, вместо того, чтобы думать "о, theres the case case пользователи, у которых нет javascript", попробуйте подумать больше о длинных строках "на самом деле легко что-то пошло не так, и у ВСЕХ наших пользователей есть сломанный javascript. Ой! Давайте попробуем сделать так, чтобы мы не" действительно проваливали себя, когда это происходит"

(Я видел, что обновления IE выкатываются и шунтируют javascript для всего браузера, пока люди, написавшие сценарии, не найдут обходное решение. Потеря всех ваших клиентов IE не очень хорошая вещь)

:set sarcasm

:set ignoreSpelling

:set iq=76

Не волнуйтесь, его только 5% рынка Niché

Никто не заботится о том, чтобы ориентироваться на рынки Ниче прямо? Все эти смешные головы пропеллеров управляют рысью в их жуткий глупый linoox cpus, тратя все свое время на серфинг с intarwebs, потому что они не имеют ничего общего с их жизнью или деньгами? сумасшедшие параноидальные защитники, отключающие javascript влево и вправо, потому что им это не нравится?

Никто не хочет, чтобы они стали вашим основным клиентом? Нике. Пфф. Кого волнует!

:set nosarcasm

Ответ 3

Рассмотрим вашу аудиторию

"Деградация изящно", как правило, лучший ответ. Но многие сайты теперь зависят от JS - особенно AJAX.

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

Если ваша аудитория может получить доступ к вашему сайту с помощью мобильных устройств, не предполагайте, что у них есть JavaScript, и даже не предполагайте, что они правильно поддерживают CSS. Стремитесь грамотно деградировать вплоть до голого HTML.

Ответ 4

Я многое узнал из своего вопроса: Что с этими людьми, не использующими Javascript

Пойдите с Ajax и Web 2.0. Это то, как идет Интернет, и это замечательно. Разве Stackoverflow не может быть включен? Это не так приятно с выключенным Javascript.

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

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

Ответ 5

Как говорили другие, он должен "грациозно деградировать".

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

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

Ответ 6

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

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

Ответ 7

Составьте свой веб-сайт с поддержкой минимального вида браузера. Тогда больше людей могут использовать ваш сайт без разочарования, даже если у них нет всех колоколов и свистков, таких как Flash, Javascript и Java. Возможно, было бы нецелесообразно продолжать поддержку старых браузеров, скажем Netscape Navigator 4, потому что пользователь может разумно ожидать, что компьютер будет обновлен. Однако такие функции, как Javascript, Flash и Java, могут быть уязвимыми в старых или современных браузерах, а также быть раздражающими.

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

Моя мама недавно совсем расстроилась, обнаружив, что теперь она не может щелкнуть по страницам результатов eBay, потому что каждый из них требует Javascript. Единственный способ увидеть следующую страницу результатов - включить Javascript или показать больше результатов на странице. Теперь, какая причина для ссылок на страницы, чтобы требовать Javascript, в то время как ссылки "результаты на страницу" - это просто ссылки? Все они должны быть простыми старыми HTML-ссылками. Возможно, Javascript можно использовать, чтобы добавить к навигации какой-то шум, но пользователь не должен быть наказан за плохой интерфейс, чтобы отключить Javascript. Это глупо на части eBay, и это вызывает неоправданные хлопоты для их пользователей.

Ответ 8

Я один из тех, кто использует "No- Script". И я могу сказать вам, что сайты, использующие javascript и не работающие без него, крайне раздражают, stackOverflow... Нет, мы не ожидаем, что это будет очень интересно, если я буду загружать новую страницу, в которой говорится: "Спасибо."

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

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

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

Ответ 9

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

Ответ 10

Необходимо, по крайней мере, проверить, что ваш сайт функционирует, когда JavaScript отключен.

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

Ответ 11

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

Для веб-приложений:

При создании веб-приложения для стандартной интернет-аудитории я буду учитывать три следующих факта:

  • У 95% -97% потенциальных пользователей будет включен JavaScript.
  • Временно созданным пользователям необходимо будет иметь доступ к функциям, когда JavaScript недоступен.
  • 3% -5% потенциальных пользователей будут умышленно отключены JavaScript.

Учитывая тот факт, что если вы считаете, что здание веб-приложение, зависящее от JavaScript, обеспечит превосходный пользовательский интерфейс, то обязательно сделайте это. Это может помочь вам накопить пользователей.

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

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

В качестве одного из моих любимых веб-приложений Remember The Milk следует этому подходу. Кроме того, приложение Google Calendar неприменимо без JavaScript. Таким образом, веб-приложения, основанные на JavaScript, растут, и эта тенденция, вероятно, не прекращается. По-моему, это хорошо.

(Имейте в виду, что JavaScript делает проблему с Accessbility более серьезной проблемой, чем она уже есть. Пожалуйста, приложите усилия, чтобы ваши приложения могли использоваться для людей с ограниченными возможностями.)

Ответ 12

Как уже говорилось, это зависит от вашей целевой аудитории.

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