浏览器关闭时发送ajax操作。
当浏览器关闭时,我们往往想执行下某些ajax操作,但是会遇到一些问题,
1:js通过绑定onbeforeunload事件在触发时候调用ajax发送请求到服务器,但是实际上页面对象已经释放了,那么在ajax还没有发送成功时候变被终止了。
window.onbeforeunload = function(){ $.ajax('',{}); }
2:现在做法是通过ajax方式定时发送请求到服务器,但是在多用户情况下这样会给服务器压力。
setInterval(function(){ $.ajax('',{}); },30000);
解决办法
1.考虑WebSocket方式建立连接来监听用户使用浏览器状态
2.onunload事件处理ajax改成同步发送请求
3.先ajax请求,然后立马alert.alert会阻塞javascript执行器中当前主线程的执行,但ajax启动的线程不是主线程,仍在执行。当用户点完确定后,ajax在后台早执行完了