Почему люди отключают JavaScript?

59

Я задал вопрос вчера Должен ли я заниматься разработкой для JavaScript отключен? , Я думаю, что согласие таково: да, я должен разработать для JavaScript отключен. Теперь я просто хочу понять, почему пользователи отключают JS. Кажется, многие разработчики (я думаю, люди, которые ответили на вопросы, являются разработчиками) отключают JS. Почему это. Почему пользователи отключают JS? Для безопасности? Скорость? или что?

Jiew Meng
источник
9
Я думаю, что вы делаете предположения на основе неподтвержденных данных. Дело в том, что 99,7% пользователей не отключают JS. Фактически, если бы они действительно отключили JS, они бы не ответили на вопрос, потому что этот сайт не работает без JS.
vartec
2
Я не знаю никого, кто знает.
kirk.burleson
6
@varted, @kirk: я знаю много людей, которые делают, или хотя бы частично. Например, многие люди, которые заботятся о безопасности, разрешают JavaScript только на тех сайтах, которые они занесли в белый список. И я знаю многих, кто отключает JS на своем смартфоне, поскольку он часто стоит батареи, которую он разряжает.
Хайлем
1
По соображениям безопасности я отключил JavaScript в Chrome по умолчанию, хотя я включаю его для веб-сайтов, которые того стоят. Мне действительно не нравится, что так много веб-сайтов не работают без javascript, есть все больше и больше, которые вообще не будут работать.
Чарек Томчак
2
@HannesKarppila Они по-прежнему могут использовать междоменные файлы cookie, а также изображения для отслеживания веб-ошибок и т. Д. Отслеживание пользователей работает нормально, если они не отключают JavaScript и cookie, в этом случае Интернет довольно непригоден для использования.
NickG 20.09.16

Ответы:

80

Один отключает JavaScript в среде браузера из-за следующих соображений:

  • Скорость и пропускная способность
  • Удобство и доступность
  • Поддержка платформы
  • Безопасность

Скорость и пропускная способность

Многие приложения используют слишком много JavaScript для собственной пользы ... Вам нужны части вашего интерфейса, которые постоянно обновляются вызовами AJAX? Может быть, ваш интерфейс чувствует себя великолепно и быстро при использовании с широкополосным соединением, но когда вам приходится переходить на более медленную скорость соединения, предпочтительнее более обтекаемый интерфейс. А отключение JavaScript - это хороший способ не дать ошеломленным веб-приложениям обновлять мир каждые 15 секунд или около того без веской причины. (Когда-либо смотрел на количество данных, которые Facebook посылает? Это страшно. Хотя это не только проблема, связанная с JS, но и ее часть).

Мы также склонны перекладывать все больше и больше обработки на клиента, и если вы используете минималистичное (или просто устаревшее) оборудование, это мучительно медленно.

Удобство и доступность

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

Наконец, некоторые пользователи имеют инвалидность, и ты не должен игнорировать их , никогда !!!

На мой взгляд, наихудшими сценариями здесь являются правительственные веб-сайты, которые пытаются «модернизировать» свои интерфейсы, чтобы они выглядели более дружелюбными для публики, но в конечном итоге оставляют большую часть своей целевой аудитории. Точно так же жаль, когда студент университета не может получить доступ к содержанию своего курса: потому что он / она слепой и его программа чтения с экрана не поддерживает сайт, или потому что сайт настолько тяжелый и требует специальных современных плагинов, которые ему / ей не удается установить этот восстановленный ноутбук, купленный на e-bay 2 года назад, или еще раз, потому что он / она возвращается домой в другую страну на весенние каникулы, а местные ограничения пропускной способности не могут справиться с полезной нагрузкой сайт.

Не все живут в идеальном мире.

Поддержка платформы

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

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

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

Это все очень взаимосвязано.

Безопасность

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

Вы понимаете, что когда вы посещаете P.SE и SO, вы автоматически входите в систему, если вы вошли в любую другую сеть, верно? Там есть несколько JS. Этот бит все еще безвреден, но он использует некоторые концепции, которые могут быть использованы некоторыми злонамеренными сайтами. Для веб-сайта вполне возможно использовать JavaScript для сбора информации о том, что вы делали (или делали) во время сеанса просмотра (или прошлых), если вы не очищаете данные сеанса каждый раз, когда выходите из браузера или запускаете сейчас. общие режимы инкогнито / приватный просмотр), а затем просто загрузите их на сервер.

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

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

JavaScript в основном безвреден ... если вы используете его для надежных веб-сайтов. Gmail. Facebook (может быть ... и даже не ...). Google Reader. StackExchange.

Но да, конечно, JavaScript не может быть таким плохим, верно? И в любом случае, есть более опасные вещи в Интернете. Подобно тому, как вы думаете, что вы анонимны, когда на самом деле не так уж много , как показал эксперимент Panopticlick EFF . Что также частично сделано с использованием JavaScript. Вы даже можете прочитать их причины отключить JavaScript, чтобы избежать отпечатков пальцев в браузере .


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

Ваш пробег может варьироваться в зависимости от вашего проекта.

haylem
источник
5
Например, Facebook - потрясающая утечка ресурсов вашего процессора. Я сталкивался с некоторыми сайтами, которые были настолько плохо закодированы (или казались таковыми), что они в основном замораживали бы мой компьютер, полностью загружая ЦП (с несколькими открытыми вкладками).
Марк С
3
@Mark C: Я полагаю, что отправлять обратно целых 140 КБ за нажатие кнопки «отправить», когда я набираю комментарий, откровенно говоря, слегка преувеличенное использование веб-форм. Возможно, это было в определенных случаях в то время, и это было исправлено с тех пор (надеюсь). Я некоторое время жил в стране с жесткой, жесткой позицией в отношении цензуры в Интернете и не очень хорошим качеством связи, и это заставляет вас гораздо больше ценить хорошие текстовые веб-сайты!
Хайлем
8
+1 за упоминание доступности. Половина проклятого Интернета совершенно непригодна для меня, и я не являюсь обычным пользователем компьютера и не должен полагаться на JAWS (пока).
Стэн Роджерс
2
@ Стэн Роджерс: это очень важно для меня. У меня была возможность поработать со слепым парнем в университете, который оказался и студентом, и учителем, и я был поражен его способностями. И мне очень грустно, что крупные компании и даже учебные заведения сейчас создают дурацкие хитрые сайты, где эти пользователи не учтены.
Хайлем
2
+1 за доступность. Я работаю на сайте, который очень тесно связан со здравоохранением. (К счастью, не самое ужасное в новостях). Как много пользы приносит нам JS, я очень опечален нашими приоритетами.
Katana314
46

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

Йорг Миттаг
источник
3
+1 за забавную аналогию. Хотя тот факт, что он завершен по Тьюрингу, не имеет ничего общего с опасностью казни.
Хайлем
4
@haylem: Быть полным по Тьюрингу означает, что невозможно механически доказать безопасность в общем случае. Черт возьми, даже невозможно доказать основные вещи, такие как то, что они не вечны. Для более строгого языка клиентский браузер мог бы доказать, что скрипт не делает чего-то опасного.
Йорг Миттаг
22
Полнота по Тьюрингу заключается только в вычислимости. В нем ничего не говорится о том, разрешено ли интерпретируемому языку открывать файлы, делать HTTP-запросы и т. Д. Единственная внутренняя опасность для полноты по Тьюрингу - это возможность бесконечного цикла.
Ден04
@ dan04 Или что он пытается эмулировать процессор x86 под управлением Windows, на котором запущено приложение Desktop, которое проецируется в окно вашего браузера - все в Javascript.
Полнота
@ dan04 и теперь криптовалютные бот-сети для майнинга (для которых требуются только вычислительные ресурсы и возможность отправлять результаты обратно).
user253751
16

Я не веб-разработчик, и у меня есть только умеренное понимание того, как работает интернет. Так что это ответ от пользователя .

Мой опыт подсказывает мне, что многие сайты просто плохо закодированы, будь то из-за лени или невежества: когда я просматриваю в основном статическую веб-страницу, такую ​​как страница в Facebook, загрузка моего процессора увеличивается примерно на 15%, и значительно больше с несколькими вкладками. В конце концов, до щелчка по кнопке или ссылке мне пришлось ждать ответа, и мой процессор перегревался и зависал.

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

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

Другое замечательное дополнение, которое я использую, - FlashBlock .

Марк С
источник
Facebook не предоставляет статические страницы: он использует технику, называемую длинным опросом, для проверки новых уведомлений, мгновенных сообщений и элементов ленты новостей. Все эти вещи требуют JavaScript и некоторого количества ресурсов процессора.
2
@MarkTrapp Да, именно поэтому я сказал «в основном статический», хотя это не совсем статическая страница. HyperPhysics будет примером сайта со статическими страницами. Я понимаю, что, вероятно, есть необходимость делать подобные вещи, иначе ящики никогда не исчезнут, и вы не увидите уведомлений, пока не обновите страницу, но : Кажется, что каждый сайт помогает себе больше ваших ресурсов, чем должен, подобно ситуация, когда профессор или преподаватель ожидает, что вы поставите их работу на первое место.
Марк C
если вы считаете, что facebook - это статическая страница, то вам не следует комментировать этот вопрос.
Дайний,
@Dainius Вы, кажется, путаете жаргон с английским, и здесь не следуете логике. Что он делает со всеми этими циклами процессора здесь? Это проблема. Может быть, сейчас и лучше, но многие из этих сайтов помогают себе излишне тратить ваше процессорное время.
Марк С
Марк, вы называете себя webdev и спрашиваете, какое отношение статическая и динамическая страница имеет к циклам процессора? или вы действительно думаете, что «просмотр статичной веб-страницы, такой как страница Facebook» - это правда?
Дайний,
10

Я отключаю JS по соображениям скорости. TechCrunch без JavaScript занимает несколько секунд для загрузки с заполненным кэшем. С JavaScript это занимает почти 20 секунд, больше, если кеш не заполнен.

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

Джош К
источник
8

Для меня это все о безопасности. Я использую noscript, чтобы разрешить некоторым веб-сайтам запускать javascript, но не разрешать большинство из них.

В конце концов, вы действительно никогда не знаете, где находится опасность ( веб-сайт nobel заражен на techspot.com ). Многие эксплойты нулевого дня (и другие) используют javascipt; закрытие этого пути атаки - это шаг в правильном направлении.

kasterma
источник
1
Вам нужно заключить что-то в квадратные скобки, чтобы эта ссылка появилась. Это напоминает мне, я узнал только прошлой зимой, что Yahoo! Спортивные объявления были заражены каким-либо вредоносным ПО (или могли заразить вас). Молодой человек, управляющий домашней сетью, в которой мы находились, занесен в черный список на многочисленных сайтах с заразной рекламой.
Марк С
7

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

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

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

Дэвид Торнли
источник
Также доверенные сайты могут включать вредоносные Javascripts - через XSS или потому что они взломаны. На ум приходит пример с Нобелевской премией.
Мнемент
4

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

На быстром компьютере с современным браузером никто в здравом уме не отключает его все время. Это не значит, что не так много людей, «заботящихся о безопасности» и других людей, у которых нет средств, желания или ноу-хау для запуска современного браузера на быстром компьютере ... Только недавно IE6 перестал быть самый популярный браузер в интернете!

Кевин Канту
источник
«и другие без средств, желания или ноу-хау для запуска современного браузера на быстром компьютере». Я могу понять и согласиться с «фондами». Я могу понять, что касается «желания», хотя я думаю, что обычно это скорее вопрос «потребности» как навязанного ограничения, чем отказ иметь приличный компьютер. Но я не совсем понимаю, что такое «ноу-хау». Как вы можете быть неквалифицированным до такой степени, чтобы не покупать недавний компьютер? Или, если вы это сделаете, из-за неправильного использования его до такой степени, что вы не устанавливаете встроенный браузер и не используете старый? :)
хайлем
2

С активированным Javascript любой веб-сайт может выполнять код на моем компьютере. Я даже не знаю, выполняет ли конкретный сайт код и что он делает. Что еще хуже, кто-то другой может вставить код без моего ведома на нормально безопасный веб-сайт (XSS). Недавно известный немецкий компьютерный журнал не смог опубликовать статью о том, что 16-летний подросток испробовал сайты онлайн-банкинга самых распространенных банков Германии. Многие из них, в том числе самые крупные, были уязвимы для XSS. И вы даже не замечаете, что ваш сайт онлайн-банкинга выполняет некоторый Javascript, который меняет, например, цель и сумму транзакции. При отключенном Javascript XSS-атака в контексте доверенного сайта бесполезна, я не выполняю вредоносный код.

Mnementh
источник