У всех есть JavaScript, да?
Как ваш JS доходит до пользователя
- Пользователь набрал в браузере URL веб-приложения
- Страничка уже загрузилась?
- HTTP-запросы получения скриптов выполнены успешно?
- HTTP-запросы получения скриптов завершились?
- Корпоративный файервол не блокирует JavaScript?
- Интернет-провайдер или мобильный оператор не изменяет скачиваемый JavaScript?
- Пользователь использует микробраузер, встраивая сайт в другое приложение?
- Пользователи не отключили JavaScript?
- У пользователей включен режим экономии в Хроме?
- У пользователя нет плагинов или расширений, которые вставляют скрипты или меняют DOM там, где вы этого точно не ожидаете?
- Пользовательский блокировщик рекламы случайно блокирует скрипт, от которого зависит ваш JS-код?
- CDN работает?
- Браузер поддерживает JavaScript, который вы написали?
- Вы на все вопросы ответили «да»? Тогда, да, JavaScript работает. ВОЗМОЖНО.
«Ни у одного пользователя нет JS, пока не скачались скрипты»
Если пользователь едет в поезде и соединение пропадает до того, как загрузились скрипты, то считайте, что JavaScript у него нет.
Сколько раз вы сталкивались с тем, что мобильный браузер вечно грузил страничку и загружал её мгновенно после обновления?
Я спрашиваю об этом потому, что многие из них именно так и делают. До сих пор.
Sky случайно блокировал jQuery, Comcast добавляет рекламу в скрипты, и если вы с этим не сталкивались, то поезжайте в аэропорт и попробуйте использовать там WiFi.
Микробраузеры везде. Каждый раз, когда кто-то вставляет ваш URL в чат или постит в соцсетях и показывается превью. И они не собираются ждать, пока ваши 2MB клиентского приложения загрузятся.
Если да и если они на 2G или в целом медленом соединении, Хром отключит все скрипты.
Есть тысячи браузерных расширений. Вы уверены, что они ничего не делают с вашим JS?
Куча людей пользуется блокировщиками рекламы, которые могут полностью блокировать целые домены. Если у вас один скрипт зависит от другого, а этот другой скрипт блокируется, все остальные ваши скрипты не запустятся.
Суть CDN именно в том, чтобы быть надежным, но минута в месяц, когда он не работает, всё же оставит без скриптов тех пользователей, кто в эту минуту загружают вашу страничку.
Воспользуйтесь Can I Use, чтобы проверить.
Прогрессивное улучшение. Потому что иногда JavaScript просто не работает. Стоит быть к этому готовым.
(c) источникВам не нужен JS, чтобы показать сраный текст и картики
Когда ваш сайт не загружает даже базовую информацию о том, как с вами связаться и где найти ваш офис, просто потому, что вы сделали так, что он вообщее не работает без JavaScript, вы сделали свой сайт менее доступным миру. Люди буквально заходят на ваш сайт и видят пустую страницу без контента.
Если вам хоть немного не плевать на своих пользователей, сделайте так, чтобы ваш сайт показывал как можно больше информации без JS.
Если вы обфусцируете свой JS и при этом верите в опенсорс, вы ведете себя как лицемер
JS исполняется на стороне клиента. Пользователи имеют право знать, какой код от случайного чувака они сейчас исполнят.