Javascript 区分浏览器关闭和在onunload中导航离开

Javascript 区分浏览器关闭和在onunload中导航离开,javascript,Javascript,作为fontend退出例程,当浏览器关闭时,我们的web应用程序将某些状态保存到服务器。但是,我们不希望在导航离开应用程序时调用退出例程,因为稍后应用程序可能会被导航回。从退出例程的角度来看,浏览器关闭和导航离开是两种截然不同的场景 将数据写入前端服务器的一种方法是调用onunload事件处理程序中的exit例程。然而,我们在区分浏览器关闭和导航离开时遇到了问题。在这两种情况下都会调用onunload处理程序。我们需要一些方法来判断我们是否在onunload中导航,这样我们就不会调用退出例程 有

作为fontend退出例程,当浏览器关闭时,我们的web应用程序将某些状态保存到服务器。但是,我们不希望在导航离开应用程序时调用退出例程,因为稍后应用程序可能会被导航回。从退出例程的角度来看,浏览器关闭和导航离开是两种截然不同的场景

将数据写入前端服务器的一种方法是调用onunload事件处理程序中的exit例程。然而,我们在区分浏览器关闭和导航离开时遇到了问题。在这两种情况下都会调用onunload处理程序。我们需要一些方法来判断我们是否在onunload中导航,这样我们就不会调用退出例程

有什么想法吗?谢谢

从退出例程的角度来看,浏览器关闭和导航离开是两种截然不同的场景

看起来您可以通过跟踪会话cookie中的用户状态来解决这个问题—一个没有expires或max age属性的cookie


这样,当用户离开应用程序/页面时,会话状态将保持不变,但当浏览器关闭时,会话状态将重置。

超级有用:为什么不在用户修改值时每X秒自动保存一次呢。依靠捕获onbeforeunload事件,然后在IE中确定它是否真的是一个卸载事件,而不是页面内导航,充其量是脆弱的。还可以看看Scunlife,我们已经有了一个类似于您提到的实现机制。我们只是不想留下任何可能由该机制造成的缺口。