[О блоге]
[наверх]
[пред]
[2020-02-29 12:30:49+03:00]
[8e0b459c1eb03995fb00efbbed3704eb07e33106]
Темы: [hate]
Может, нам слегка успокоиться с JavaScript?
https://habr.com/ru/post/490412/
Да, Да, ДА!!! Нам уже даааавно пора завязать с этим ужасом!
Всё очень хорошо сказано. Что-то я даже скопирую сюда.
Когда "группа высокооплачиваемых и высококвалифицированных специалистов,
у каждого из которых установлен Chrome на последней модели Mac Pro,
которые работают в офисе на расстоянии не больше километра от каждого
сервера, на который они заходят. И вот эти ребята работают, а потом
поворачиваются и хихикают над всеми остальными, у кого нет такой
конфигурации. Учтите, что любое из следующих условий помешает работе
вашего JavaScript" (некоторые пункты уберу, так как высосаны из пальца
IMHO):
* Кто-то на медленном компьютере.
* Кто-то на медленном соединении.
* Кто-то на телефоне, то есть на медленном компьютере с медленным
соединением.
* Кто-то застрял со старым браузером на компьютере, который он не
контролирует — на работе, в школе, в библиотеке и т. д.
* Кто-то пытается написать небольшую программу, которая
взаимодействует с вашим сайтом, у которого нет API.
* Кто-то пытается загрузить копию вашего сайта, чтобы почитать в офлайне.
* Кто-то — это кэш Google или Архив Интернета.
* Кто-то сломал графическое окружение в Linux и пытается выяснить,
как его починить, загружая статьи с вашего сайта через браузер
командной строки Elinks.
* Кто-то внёс изменения в ваш сайт с помощью пользовательского
скрипта, и это мешает вашему собственному коду.
* Кто-то использует NoScript и видит на вашем сайте только пустой
экран. Они настолько раздражён, что просто уходит, а не вносит ваш
сайт в белый список.
* Кто-то использует NoScript и вносит в белый список вас, но не один
из десятков трекеров, которые вы используете. Позже вы случайно
ставите скрипт в зависимость от трекера, и он таинственным образом
больше не работает для таких пользователей.
* Вы даёте критически важному скрипту название, связанное с
рекламой, и он не загружается у десятков миллионов пользователей с
блокировщиками рекламы.
* Ваш CDN упал.
* У вашего CDN есть адрес IPv6, но на самом деле он не работает (да,
я видела такое и у компаний стоимостью в миллиард долларов, и у
федерального правительства). Заходит кто-то по IPv6, страница
загружается, но JS вылетает по таймауту.
* Вы случайно использовали новую функцию, которая не работает в
предыдущей версии самого популярного браузера. Выводится
синтаксическая ошибка, и ни один из ваших сценариев не запускается.
Если раньше люди в HTML просто прописывали ссылку <a href="...>, то
открывалась масса возможностей что с ней сделать:
* Я могу перейти по ссылке.
* Я могу открыть ссылку в новой вкладке или окне с помощью
комбинации клавиш ctrl, shift и колёсика (средней кнопки) мыши.
* Я могу скопировать адрес ссылки и вставить его куда-нибудь или
открыть в другом браузере, или ещё что-нибудь.
* Я могу использовать ' в Firefox для поиска только ссылок.
* В некоторых браузерах — Opera, Konqueror, uzbl, Firefox с
vimperator? — есть горячая клавиша, которая показывает цифру или
букву рядом с каждой ссылкой на странице, так что вы можете очень
быстро «щёлкнуть» ссылку визуально, даже не касаясь мыши.
* Я считаю, что скринридеры обрабатывают ссылки специальным образом.
* Простые краулеры составляют по ссылкам карту сайта.
* Браузеры начинают экспериментировать с предварительной загрузкой
видных ссылок, так что если пользователь действительно нажимает на
неё, то страница открывается мгновенно.
С JS-ом, когда делают <div>, всё это само собой пропадает.
Ну и дальше в статье речь про самодельные <select>, поля ввода, перехват
клавиш клавиатуры (ломая горячие клавишы броузера) ("Веб-разработчики
сами вообще пользуются браузерами?"). Я лично видел на практике что в
модных React single page application-ах переставала работать "назад",
обновление страницы (Ctrl-R). Это хуже чем GNU/Linux и ситуация с IPv4!
[оставить комментарий]