问题描述
我有两个应用,App1和App2。
App2作为iframe嵌入在App1中,因此App1是嵌入App2的父级应用。
当用户从浏览器关闭App1时,我想在App2中触发一个api。
我尝试在App2中使用'unload'
事件,但在App2关闭时不会触发(通过将调试器点放在事件侦听器函数上进行检查,该事件在独立的App2关闭时被调用)。
有没有办法做到这一点?谢谢
解决方法
从历史上看,尝试在卸载事件中发出异步请求从来都不可靠
因此创建了navigator.sendBeacon(url,data)。
即使页面或标签消失了,它也可以在后台运行,并有助于解决使用卸载事件的许多可靠性问题。
使用sendBeacon()方法,当用户代理有机会这样做时,异步传输数据,而不会延迟卸载或下一次导航。
我从未在像您这样消失的iframe场景中使用过它,但相信它将解决您的问题