判断用户是否在线的代码判断用户是否在线的代码
判断用户是否在线的代码,需要的朋友可以参考下。
考虑两种情况:
(1)用户关闭浏览器或重定向到其他网页
复制代码 代码如下:
<script type=text/javascript>
function exit_init() {
if(xmlhttp.readyState==4){
if(xmlhttp.status==200){ //
}
else{
alert("there was a problem accessing the server:"+xmlhttp.status);
}
}
}
//定义windows 的onbeforeunload 事件,当用户非正常退出即浏览器非正常关闭时,对用户登录状态进行处理
window.onbeforeunload=function () {
//if(event.clientY<0||event.altKey) {
exit_request = false;
//创建请求对象
if (window.XMLHttpRequest) {
exit_request = new XMLHttpRequest();
if (exit_request.overrideMimeType){
exit_request.overrideMimeType('text/xml');
}
} else if (window.ActiveXObject) {
try{
exit_request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
exit_request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {
}
}
}
if (!exit_request) {
alert("Your brower is not compatible the current opration.Please use the IE 5.0! ");
return false;
}
var url='null.php?userid='+document.getElementById("userid").value;
//定义页面调用的方法exit_init,不是exit_init();没有();
exit_request.onreadystatechange = exit_init;
exit_request.open('GET', url, true);
//禁止IE 缓存
exit_request.setRequestHeader("If-Modified-Since","0");
//发送数据
exit_request.send(null);
}
//}
</script>
说明:null.php用来将用户状态设为下线
(2)用户长时间不再浏览本网站
思路:创建表active_stat,属性有userid,lasttime,nowtime。用户每打开一次本网站,更改lasttime为当前时间now(),每隔1分钟
更改nowtime为当前时间,判断nowtime-lasttime是否大于20分钟,若大于,则修改用户状态为下线
复制代码 代码如下:
<script language=javascript>
function test(userid){
setInterval("offline('"+userid+"')", 60000 ); //每隔1分钟执行一次
}
function offline(userid){
var xmlhttp=false;
try{
评论0
最新资源