请教如何实现关闭浏览器既关闭session的问题?(包括任务管理器关闭进程的情况)
如题。
上网查了一些资料,发现大部分方法是像如下代码所示,大概可以实现关闭浏览器时使session失效。
<script language=javascript>
function window.onunload()
{
if (event.clientX <0 && event.clientY < 0){
var dlgStyle = "dialogHeight:100px;dialogWidth:300px;status:no;scroll:no;help:no; ";
showModalDialog( "right13.jsp?username= <%=username%> ", null, dlgStyle);
}
}
right13.jsp:
<% if(request.getParameter( "username ") != null) {
onlineuser.deleteUser((String)request.getParameter( "username "));//清SESSION
}
%>
<html>
<body>
<table> <tr> <td style= "font-size:10.5pt " height=80 width=300 align= "center " valign= "center "> 请稍等,系统正在退出...... </td> </tr> </table>
<script language= "JavaScript ">
<!--
setTimeout( "close(); ", 1000);
-->
</script>
===============
那如果是任务管理器中直接关闭进程,怎么实现,请教有经验的朋友!
------解决方案--------------------好像不错啊。顶啦
------解决方案--------------------实际上关闭浏览器自动会关闭session,至少IE是这样的
你说关闭浏览器把进城关了,是不合理的,因为客户端可能同时开了N个页面
------解决方案--------------------这个问题我以前找过,没有完美的解决方案.
如果你想在服务器端实时统计在线人数这类问题的话,倒是有一个方法.
那就是在一个页面中写上脚本,每隔几秒钟向服务器发送一次消息,说明还在线.
然后每个页面包含这个页面.
这样,如果服务器发现某个session过了挺长时间(自己测试后定)还没有发送消息过来,那就认为已经不在线.
------解决方案--------------------1.不合理
2.做不到
------解决方案--------------------实际上关闭浏览器自动会关闭session,至少IE是这样的
你说关闭浏览器把进城关了,是不合理的,因为客户端可能同时开了N个页面
--------------同意
------解决方案--------------------ZW_Ren(任再旺)的方法太牛X了
------解决方案--------------------用Keep-Alive
------解决方案--------------------设置session的timeout 这样到了timeout的时间 就清除这个session了
立即关闭 按你那么操作 肯定做不到
------解决方案--------------------