Javascript 卸载前的事件

Javascript 卸载前的事件,javascript,jquery,reload,onbeforeunload,Javascript,Jquery,Reload,Onbeforeunload,我需要用ajax关闭用户会话,当这关闭应用程序的导航或选项卡时。为此,我使用的是PreforeUnload之前的事件,问题是当我用F5(cmr+r,ctrl+r)重新加载页面时,导航打开警告诊断,我不需要这个 $(window).bind('beforeunload',function (e) { var message = 'Are you sure you want to leave?'; return message; } $(window).bind('unload',

我需要用ajax关闭用户会话,当这关闭应用程序的导航或选项卡时。为此,我使用的是PreforeUnload之前的事件,问题是当我用F5(cmr+r,ctrl+r)重新加载页面时,导航打开警告诊断,我不需要这个

$(window).bind('beforeunload',function (e) {
   var message = 'Are you sure you want to leave?';
   return message;
 }

$(window).bind('unload', function () {
  var dataStatus = $('button[name="status"]').attr('data-status');
  if (dataStatus == 'online') {
    var req = $.ajax({
      url: 'mi-url',
      type: 'POST',
      async : true,
      data: {data: JSON.stringify({user_id: <?php echo $user->getId() ?>})},
      dataType: "JSON"
    });
  }
});
$(窗口).bind('beforeunload',函数(e){
var message='您确定要离开吗?';
返回消息;
}
$(窗口).bind('unload',函数(){
var dataStatus=$('button[name=“status”]”)。attr('data-status');
如果(dataStatus==“在线”){
var req=$.ajax({
url:“mi url”,
键入:“POST”,
async:true,
数据:{data:JSON.stringify({user_id:}}),
数据类型:“JSON”
});
}
});

正在等待答复,谢谢。

您无法区分关闭选项卡和选项卡卸载/重新加载。您可以设置间隔5分钟或某个有意义的时间段,然后向服务器发送会话通知。

可能的重复: