У меня есть механизм отслеживания, с помощью которого я отправляю объекты JSON конечной точке API во время пребывания пользователя на веб-странице.Поэтому я отправляю вызовы API для некоторых конкретных событий.API должен принимать вызов, когда пользователь покидает страницу.
Проблема заключается в том, что я использую функции ниже для запуска, когда пользователь закрывает броузер, но функции запускаются только в режиме отладки браузера.
// page-wrapper.component.ts
...
// triggers on DOM unload
@HostListener('window:unload', ['$event'])
unloadHandler(event) {
this.service.apiCall(); // this is nevertriggered
console.log('unloaded DOM') // triggered only in browser debug mode
}
// triggers just before unloadHandler()
@HostListener('window:beforeunload', ['$event'])
beforeUnloadHander(event) {
this.service.apiCall(); // same as above
}
Итак, я попробовал оба метода.Если я отлаживаю их, методы, кажется, запущены, но API не получают ничего.
Я могу убедиться, что функция, которая связывается с API, была протестирована и у нее нет проблем.
Я думаю, что проблема связана с unloadHandler()
или beforeUnloadHandler()
.
Кто-нибудь знает, как вызвать API, когда пользователь закрывает окно браузера или вкладку браузера?
Примечание. Приложение может находиться на отдельной вкладке браузера или в фрейме.