用什么方式知道用户是否在线?
用户登陆的时候我可以设一下值,让她变为1,就是在线,但是用户走了,怎么让他变为0,才是离线呢
[CODE]<BODY onbeforeunload="body_onUnload()">
<script>
function body_onUnload()
{
if (window.event.clientX>document.body.clientWidth&&event.clientY<0||event.altKey)
{
alert("浏览器关闭");
}
else
{
alert("刷新或者跳转到其他页");
}
}
</script>
</BODY>[/CODE]
以上是一个片段,BODY 的 UNLOAD和onbeforeunload事件会在浏览器清除所加载的信息时被触发,也就是说页面在回送、重定向或被关闭的时候就会触发 ,通过这个事件加上JAVASCRIPT处理就可以实现非法关闭浏览器也即时统计在线人数了。
但是有个问题,怎么判断用户是关闭还是刷新、回送、重定向呢?
window.event.clientX和window.event.clientY 将捕捉当前事件发生时鼠标相对与窗口的桌面坐标,通常情况下IE的关闭按钮都会在页面的左上部分,所以点关闭的时候鼠标的坐标的Y坐标一定是小于0的,另外,鼠标坐标的X方向上坐标数值会大于窗体宽度,所以,从这两个条件就可以判断鼠标是不是在点关闭按钮引发的onbeforeload事件。
还有一种关闭方法是ALT+F4 ,通过event.altKey就可以判断,事件发生的时候ALT键是不是被按下了,这样也就判断出了是不是时候ALT+F4来关闭窗口。
Session有生存期,默认为20分钟
如果那人已经离线,20钟后会激发Session_onend(好像是这样写的)事件
你在那写减一的代码
我觉得最好的方法
别人打开网页时,用数据库记录用户的访问时间,访问在10分钟内的就算是在线...