beforeunload: почему «Вы уверены, что хотите уйти?» вредит UX и bfcache
Замена на inline-предупреждения в формах и сохранение черновика в localStorage.
Обработчик `beforeunload` блокирует bfcache и раздражает пользователей системным диалогом — Google и Apple давно не рекомендуют паттерн для маркетинговых сайтов.
Для длинных форм показывайте баннер «есть несохранённые изменения» внутри страницы и autosave.
- beforeunload — MDN — Ограничения и поддержка.
- bfcache — web.dev — unload/beforeunload vs bfcache.
Альтернатива
Сохраняйте черновик при input с debounce; восстанавливайте при возврате на вкладку через `visibilitychange`.