Ваадин onbeforeunload событие

Есть ли какое-либо событие Out Of The Box Vaadin 10 (и выше), подобное window.onbeforeunload в JavaScript? Я пробовал использовать onDetach () или beforeLeave (), но он работает только внутри пользовательского интерфейса, и когда пользователь перезагружает страницу или закрывает страницу, он не работает.


person Nick Zhdanov    schedule 18.06.2019    source источник
comment
Нет, но взгляните на vaadin.com / forum / thread / 17523194 /   -  person Javier    schedule 18.06.2019
comment


Ответы (1)


Вы можете использовать подход, описанный в https://vaadin.com/forum/thread/17523194/unsaved-changes-detect-page-exit-or-reload, который уже был предложен в комментарии.

В то же время я настоятельно рекомендую вам быть очень осторожными с beforeunload событиями, поскольку в некоторых ситуациях они запускаются, даже если пользователь фактически не уходит со страницы.

Чаще всего пользователь щелкает ссылку, по которой начинается загрузка. В этом случае браузер немедленно активирует событие, когда пользователь щелкает ссылку. Чуть позже, когда браузер получит заголовки ответа, он обнаружит, что это загрузка, а не новая HTML-страница для отображения. Конечным результатом является то, что beforeunload был запущен, но предыдущая страница все еще продолжает работать.

Если вы хотите использовать событие для очистки, то лучшим подходом на сегодняшний день, вероятно, является комбинация события unload и последующего использования нового Beacon API для уведомления сервера о том, что пользователь фактически ушел. Для интеграции этого в приложение Vaadin потребуется немного больше JavaScript, но у него есть то преимущество, что он действительно будет работать.

person Leif Åstrand    schedule 19.06.2019