我有一个 Angular 项目,它与使用 PHP 和 ZF3 制作的后端项目进行通信。我想知道告诉后端项目浏览器已关闭的最佳方法是什么?我曾想过在触发 beforeunload 事件时发送一个 http 请求,但即使我使用 async/await,请求也会被取消。我认为的另一种方式是使用 websocket 连接,但在 PHP 中实现似乎非常复杂,只是为了知道用户何时离开浏览器。有任何想法吗?谢谢!
1 回答
富国沪深
TA贡献1790条经验 获得超9个赞
最好的方法是使用sendBeacon方法:
简单的例子:
window.addEventListener('unload', () => {
navigator.sendBeacon('url/to/backend');
});
因为你使用角度,你可以把它放在你的AppComponent(虽然它可能不是正确的地方)
export class AppComponent {
@HostListener('window:unload')
onUnload = () => navigator.sendBeacon('url/to/backend');
}
- 1 回答
- 0 关注
- 126 浏览
添加回答
举报
0/150
提交
取消
