有时候我们需要在用户离开页面的时候,做一些上报来记录用户行为。又或者是发送服务器ajax请求,通知服务器用户已经离开,比如直播间内的退房操作。本文主要分两部分来讲解怎么完成退出行为的上报。浏览器有两个事件可以用来监听页面关闭,beforeunload和unload。beforeunload是在文档和资源将要关闭的时候调用的, 这时候文档还是可见的,并且在这个关闭的事件还是可以取消的。有了上面的监听,事情只完成了一半,如果我们在监听中直接发送ajax请求,就会发现请求被浏览器abort了,无法发送出去。在页面卸载的时候,浏览器并不能保证异步的请求能够成功发出去。虽然异步请求会被浏览器abort,但是如果服务端可以忽略abort,仍然正常执行,也是可以的。

在Web关闭页面时发送Ajax请求的实现方法

在Web关闭页面时发送Ajax请求的实现方法

在Web关闭页面时发送Ajax请求的实现方法

在Web关闭页面时发送Ajax请求的实现方法

在Web关闭页面时发送Ajax请求的实现方法