有unload
和beforeunload
javascript事件,但是这些事件对于Ajax请求是不可靠的(不能保证在这些事件之一中发起的请求将到达服务器)。
因此,强烈建议 要这样做,您应该寻找替代方法。
如果您确实需要此功能,请考虑使用“ ping”式的解决方案。每分钟发送一次请求,基本上告诉服务器“我还在这里”。然后,如果服务器超过两分钟未收到此类请求(您必须考虑延迟等),则认为客户端处于脱机状态。
另一个解决方案是使用unload
或beforeunload
执行Sjax请求(同步JavaScript和XML),但是完全不建议这样做。这样做基本上会冻结用户的浏览器,直到请求完成为止,他们不会喜欢(即使请求花费很少的时间)。