当前位置: 代码迷 >> Java Web开发 >> 用户没有点击退出登录,而直接关闭浏览器如何知道
  详细解决方案

用户没有点击退出登录,而直接关闭浏览器如何知道

热度:5131   发布时间:2013-02-25 21:18:01.0
用户没有点击退出登录,而直接关闭浏览器怎么知道?
主要是我想实现在网站内,一个帐号同一时间只能有一个有效登录。
其他人再登录时就提示该帐号已经登录,不知道怎么实现。

我想用application,但是如果用户没有点退出登录而直接关闭浏览器时不知道该怎么在application里取消该登录的状态(只能等待超时,这样不太好。比如10分钟超时的话,A关浏览器2分钟又登录,而application里还有该帐号的登录记录这时会提示该帐号已登录,而事实上该帐号没有使用中,这样就会造成不良的误解)

或者用其他的方法也成。高手们给出出主意

------解决方案--------------------------------------------------------
如果你用的是IFREAM那你可不可以在TOP里写一个WINDOWS的组件,来判断是刷新还是关闭,然后传一个值不就知道是不是非正常关闭了啊,不知道我说的是不是你想要的,你试一下.代码如下
<script type="text/javascript">
window.onbeforeunload = function() //author: meizz
{
var n = window.event.screenX - window.screenLeft;
var b = n > document.documentElement.scrollWidth-20;
if(b && window.event.clientY < 0 || window.event.altKey)
{
//alert("是关闭而非刷新");
<%--window.event.returnValue = "'<%=request.getContextPath()%>/login.do?method=loginout&username=${username}';"; //这里可以放置你想做的操作代码--%>
window.location.href="<%=request.getContextPath()%>/login.do?method=loginOut&username=${username}";
}else{
//alert("是刷新而非关闭");
}
}
</script>
------解决方案--------------------------------------------------------
关闭IE时你就把名字清出去,进的时候加进去,当然,你要用一个监听最好了,这样就知道用户在线不,出可以做到是不是同一用户可不可以重进入系统,
  相关解决方案