Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在关闭浏览器后执行API_Javascript_Angular_Browser_Dom Events - Fatal编程技术网

Javascript 在关闭浏览器后执行API

Javascript 在关闭浏览器后执行API,javascript,angular,browser,dom-events,Javascript,Angular,Browser,Dom Events,如果浏览器关闭,我需要执行Api,例如发生故障, 从用户处关闭浏览器,pc崩溃,ext 此功能在我的组件中,我不在任何地方调用此功能,我认为它应该自动激活 @HostListener('window:beforeunload', ['$event']) beforeunloadHandler(event) { this.postService.unsetPost(this.postId).subscribe(); } 但是不起作用。在我看来,更好的办法是制作心跳api,它每N

如果浏览器关闭,我需要执行Api,例如发生故障, 从用户处关闭浏览器,pc崩溃,ext

此功能在我的组件中,我不在任何地方调用此功能,我认为它应该自动激活

 @HostListener('window:beforeunload', ['$event'])
  beforeunloadHandler(event) {
    this.postService.unsetPost(this.postId).subscribe();
  }

但是不起作用。

在我看来,更好的办法是制作心跳api,它每N秒发送一次请求,通知服务器会话处于活动状态,用户处于在线状态。在服务器上,每M分钟检查一次是否有超过N秒的心跳请求:如果是,则执行API请求(崩溃时要执行的)

在组件构造函数中编写上述代码。。。
快乐编码…:)

但这是由于服务器端负载过大,如果我仅在浏览器或选项卡关闭时才执行API(数据库中的删除),则会变得清晰和轻松。请简要说明您到底想要实现什么,或者为什么要在浏览器关闭时启动API?我创建了一个资源管理器,用户无法在已经编辑的情况下进行编辑,我通过在数据库中记录记录来做到这一点,但我不涉及浏览器意外关闭的情况,因为在记录存在之前,内容是锁定的,没有人可以修改。关闭浏览器时我必须删除此记录,this.postService.unsetPost(int-idpost)删除此记录。关闭浏览器的选项卡时是否应该工作?如果是,则不工作。@无论您是关闭选项卡还是关闭浏览器,Toriga在这两种情况下都工作。您使用哪种语言作为后端?您可以实现它提供给您的web套接字。在('disconnect')事件中。。。请查看下面的内容…它有完整的浏览器支持。。。Java,spring boot,从控制台我看不到angular的调用。如果客户端因任何原因断开连接、关机、断电、关闭等,请检查此项,您将直接在后端收到断开事件。
 constructor() {
    window.onbeforeunload = ()=>{
      //call API here
    }
  }