【发布时间】:2021-10-27 12:26:56
【问题描述】:
我有一个 Web 应用程序,如果用户的连接以任何非用户发起的方式关闭(如用户的浏览器进程被杀死、用户的系统关闭或用户的互联网得到断线一段时间)。 但是如果用户自己关闭浏览器或关闭浏览器选项卡,那么在这种情况下,服务器应该在后端删除用户的数据。
基本上,我想区分用户自己何时故意关闭网页窗口或他因任何技术问题而断开连接。
为此我使用了窗口的unload事件并调用了一个api来删除数据。
@HostListener('window:unload', ['$event'])
unloadHandler($event: any) {
this.sendApiToDeleteData();
}
但是从浏览器单击后退按钮时不会调用此函数。由于返回将由用户通过单击浏览器后退按钮来启动。我想删除用户数据。但似乎卸载不适用于后退按钮。
另外,来自文档here。它说事件与后退/前进缓存不兼容而且由于文档还建议 不要使用 unload 事件。
是否有任何其他方式来处理页面卸载或任何更好的方式来处理我的用例?
【问题讨论】:
标签: javascript angular window.onunload