#305

Не показывай лоадер сразу

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

И вот так делать не надо.

В подавляющем большинстве случаев форма обрабатывается мгновенно (<1s) и лоадер будет лишь только неприятным морганием, особенно если он полноэкранный и закрывает форму. Пользователь не успеет понять, что моргнуло и почему, но у него возникнет ощущение утраты контроля — самое неприятное ощущение, какое только может создать UI.

Лоадер надо показывать спустя некоторое время после сабмита, если данные не подгрузились.

Спустя какое? Это можно узнать вот так:

const startedAt = Date.now();
await submitAndProcessForm();
const diffMs = Date.now() - startedAt;

fetch('https://my.company/analytics/reportFormTime/?t=' + diffMs);

Или просто выставить его в две секунды.