Javascript 在关闭浏览器后执行API
如果浏览器关闭,我需要执行Api,例如发生故障, 从用户处关闭浏览器,pc崩溃,ext 此功能在我的组件中,我不在任何地方调用此功能,我认为它应该自动激活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
@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
}
}