如何在浏览器支持下处理窗口卸载事件?



我有一个web应用程序,默认情况下保存用户的数据在服务器端,如果用户的连接被关闭的任何方式不是由用户发起的(如用户的浏览器进程被杀死,用户的系统关闭或如果用户的互联网断开了一段时间)。但是,如果用户自己关闭浏览器或关闭浏览器选项卡,那么在这种情况下,服务器应该在后台删除用户的数据。

基本上我想区分当用户自己故意关闭网页窗口或当他被任何技术问题断开连接。

为此,我使用了窗口的unload事件并调用api来删除数据。

@HostListener('window:unload', ['$event'])
unloadHandler($event: any) {
this.sendApiToDeleteData();
}

但是当从浏览器点击后退按钮时,这个函数没有被调用。因为返回将由用户通过单击浏览器返回按钮发起。我想删除用户数据。但似乎卸载不工作与后退按钮。

同样,从这里的文档。它说事件与向后/向前缓存不兼容,并且由于文档还建议不要使用unload事件。是否有其他方法来处理页面卸载或更好的方法来处理我的用例?

你好,你可以使用这个和你的代码一起检测反按:

@HostListener('window:popstate', ['$event'])
onPopState(event) {
console.log('Back button clicked');
}

相关内容

  • 没有找到相关文章

最新更新