У меня есть приложение AngularJS, и я использую следующий код, чтобы позволить пользователю подтвердить, действительно ли он хочет покинуть страницу и может потерять несохраненные данные:
window.addEventListener('beforeunload', function (e) {
e.preventDefault();
e.returnValue = '';
return 'Do you really want to leave?'
});
window.addEventListener('unload', function (e) {
console.log('unload');
myRestService.close();
e.preventDefault();
e.returnValue = '';
});
Это работает хорошо, и браузер отображает окно сообщения, в котором пользователь должен решить, уйти или остаться на странице. Однако, если пользователь действительно хочет покинуть страницу, я должен сделать вызов серверной части отдыха. Для этого я подумал, что я также могу зарегистрироваться для события выгрузки, которое запускается, когда пользователь фактически покидает заднюю часть. Это работает, если пользователь перезагружает заднюю часть или переходит по другому URL-адресу в приложении. Однако событие не запускается или, по крайней мере, я его не вижу, когда пользователь переходит на другую страницу или закрывает браузер.
Как я могу также поймать эти события и убедиться, что мой вызов на отдых все еще проходит?