前端开发

 首页 > 前端开发 > javascript > 浏览器关闭时发送ajax兼容详解解决办法

浏览器关闭时发送ajax兼容详解解决办法

分享到:
【字体:
导读:
          浏览器关闭时发送ajax操作。 当浏览器关闭时,我们往往想执行下某些ajax操作,但是会遇到一些问题, 1: js通过绑定onbeforeunload事件在触发时候调用ajax发送请求到服务器,但是实际上...

浏览器关闭时发送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在后台早执行完了




分享到:
微信浏览器监听返回按钮
微信浏览器如何监听返回按钮 document.addEventListener('WeixinJSBridgeReady', function onBridgeReady() { WeixinJSBridge.call('closeWindow'); });
微信常用方法【连载】
隐藏微信中网页右上角按钮 function onBridgeReady(){  WeixinJSBridge.call('hideOptionMenu'); } if (typeof WeixinJSBridge == "undefined"){     if( document.addEventListener ){         document.addEventListener('WeixinJSBridgeReady', onBridgeReady, false); ...
  •         php迷,一个php技术的分享社区,专属您自己的技术摘抄本、收藏夹。
  • 在这里……