Что: 8e0b459c1eb03995fb00efbbed3704eb07e33106
Когда: 2020-02-29 12:30:49+03:00
Темы: 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!