0

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

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

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

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

但是从浏览器单击后退按钮时不会调用此函数。由于返回将由用户通过单击浏览器后退按钮来启动。我想删除用户数据。但似乎卸载不适用于后退按钮。

另外,来自此处的文档。它说事件与后退/前进缓存不兼容并且由于文档还建议不要使用 unload事件。有没有其他方法来处理页面卸载或任何更好的方法来处理我的用例?

4

1 回答 1

0

您好,您可以将其与您的代码一起使用来检测回压:

  @HostListener('window:popstate', ['$event'])
  onPopState(event) {
    console.log('Back button clicked');
  }
于 2021-10-27T12:33:30.527 回答