在线人数统计
实现方案。
用户登录时,记录用户信息,存入数据库表(online表)中。
用户登出包括用户点击退出按钮,用户关闭浏览器。
使用onbeforeunload和onunload方法。基本代码如下:
window.onbeforeunload = onbeforeunload_handler;
window.onunload = onunload_handler;
function onbeforeunload_handler(){
var warning="确认退出?";
return warning;
}
function onunload_handler(){
$.ajax({
type: "POST",
url: "${ctx}/monitor/closeBrowser.do",
async:false,
success: function(){
alert(1);
}
});
}
用户确认关闭浏览器后,执行ajax方法,更新online表,插入用户登出时间。
问题:用户点击关闭浏览器后,ajax的方法没有执行,组后输出的1也返回了,然后浏览器关闭。后台的ajax方法时而执行时而不执行,而且是基本不执行。
有朋友遇到过这种情况,知道肿么解决吗。
目前设计已经评审通过,不打算改方法,所以求大神帮助解决ajax不执行的问题。不要提建议说建议不要使用这种方式判断浏览器关闭神马的!谢谢大家
[解决办法]