Comments 3
Это приведёт к тому, что длительность ответа страницы замедлится более чем на 20 секунд, и пользователь уйдёт с сайта, так и не дождавшись загрузки, получив при этом негативный опыт.
Хорошо, выставили вы таймауты - для пользователя-то что изменится? Он все равно уйдёт с сайта, так как приложение не получит ответ от сервера. Ну хорошо, вы его можете проинформировать о проблемах на сервере через секунду, но контента ведь он все равно не увидит...
Я только вчера как раз задумался о сути этих таймаутов. По сути таймаут сетевого интерфейса - это "показатель максимальной продолжительности показа лоадера"))
Оставим даже в стороне быстродействие сервера (500мс на всё про всё?). Такие "временные зазоры" (продолжительностью до секунды) на самом деле очень неудобны для пользовательских интерфейсов - и не мгновенно манипуляции происходят и "лаг" слишком короткий чтобы что-то вменяемое показать (заставить спиннер на экране сделать хотя бы пару оборотов). В итоге интерфейс получается слишком "неотзывчивым".
На пальцах: Яндекс.маркет и Озон (это, по ходу, родовая болячка подобных проектов) - кликаю по чекбоксам в панели фильтрации. После каждого onchange начинается ререндер не только поисковой выдачи, но и панели фильтрации ("оптимизировали" - помогаем пользователю, убрав неактуальные варианты фильтрации). Я по привычке начинаю быстро протыкивать чекбоксы. Уже второй клик приходится не на чекбокс, а или на модалку (которая вылезает на время ререндера посиковой выдачи), или на совершенно левый чекбокс (который встанет на место целевого из-за ререндера панели фильтрации)... Это конечно всё надо рассматривать на конкретном примере, но это я всё только ради тезиса к которому хотел подвести:
Продолжительность обратной реакции интерфейса сопоставимая со временем человеческой реакции - крайне неюзабельна. Либо делайте мгновенную отрисовку, либо дайте мне "зазор" на осознание изменений в интерфейсе.
Если чуть конкретнее про - "зазор на осознание изменений в интерфейсе". - тот тут появляется прошлый пользовательский опыт, а он у всех разный.
Может лучше как-то заранее объяснить, как будет действовать страница?
Может быть даже предоставить выбор пользователю?
тот тут появляется прошлый пользовательский опыт, а он у всех разный
Ну я же предложением выше всё объяснил - сопоставимая со временем человеческой реакции. Опыт может и разный, время реакции в одном диапазоне находится))
Это если абстрактно. Если рассматривать конкретные примеры - то, разумеется, выход из этой ситуации найти можно. Например не двигать/скрывать чекбоксы, а дизэйблить их и т.п.
Server-side rendering и практики работы с запросами