相关疑难解决方法(0)

在卸载之前将AJAX发送到服务器

所以据说从Firefox> 4开始,绑定窗口jQuery对象beforeunload不再起作用了.

我想做的是提交AJAX帖子来删除我的服务器的memcache数据.

当我刷新唯一的打开选项卡时,我可以看到beforeunload使用以下代码在firefox和chrome中调用该事件,如console.log消息"firefox/NON-firefox delete"所示.问题是我从未看到console.log消息"memcache delete",表明我的服务器从未看到过$.ajax请求.

我意识到浏览器嗅探是不好的,并且if和else语句中包含的内容之间没有区别.我只是展示了我在Firefox中尝试失败的代码.

有人有主意吗?

$(window).bind('beforeunload', function(){ 
  if(/Firefox[\/\s](\d+)/.test(navigator.userAgent) && new Number(RegExp.$1) >= 4) {
    console.log('firefox delete');
     memcacheDelete();
     return null;
  } 
  else {
    console.log('NON-firefox delete');
    memcacheDelete();
    return null;
  }
});

function memcacheDelete() {
   $.ajax({
      url: "/memcache/delete", 
      type: "post",
      data:{}, 
      success:function(){
          console.log('memcache deleted');
      }//success
  }); //ajax
}
Run Code Online (Sandbox Code Playgroud)

javascript jquery cross-browser onbeforeunload

9
推荐指数
2
解决办法
2万
查看次数

如何在没有取消的情况下在页面卸载时发送AJAX请求?

我正在尝试发送PUT关于该unload事件的请求,但请求始终被取消.

这里的答案说不可能:如何在页面卸载时执行ajax调用?

这里的答案表明它是可能的:如何在页面卸载/离开时发送AJAX请求?

我可以在卸载时发送AJAX请求,如果是这样,我怎么能不被取消.

编辑:我不关心响应,我不需要回复.只需要向服务器发送一些信息,说明页面已经关闭而没有保持活动检查.

javascript ajax jquery

5
推荐指数
2
解决办法
3106
查看次数

标签 统计

javascript ×2

jquery ×2

ajax ×1

cross-browser ×1

onbeforeunload ×1