在关闭浏览器时,想发送请求让session销毁,用 onbeforeunload 事件监听浏览器关闭,但刷新页面时也被监听到了,应该怎么做呢session浏览器

解决方案 »

  1.   

       可以让服务器去检查上次访问时间,超过一定时间认为已退出,销毁session。
       如果非要用客户端控制的话,监听到onbeforeunload发送ajax请求销毁session,页面加载时再去请求新建session有点得不偿失。
      

  2.   

    当用户关闭浏览器,又重新打开,想再次登录, 在这种情况下,上一个session还没销毁,而我使用了HttpSessionAttributeListener监听session关闭后移除ServletContext域里用户的登录状态。 如果关闭浏览器,但session没有销毁,再次登录时,就提示用户已在线了
      

  3.   

    js 判断不了 退出当前网站。服务器 设置session 过期时间(设置短一点) 和 session end 事件去处理
      

  4.   

    你不能判断有session就自动登入吗?
      

  5.   

    onbeforeunload 事件不只是监听关闭窗口,刷新也是会被监听的;你要么在onbeforeunload 事件函数里判断是关闭还是刷新;要么就用其他的监听事件
      

  6.   

    一个判断页面是否真的关闭和刷新的好方法:window.onbeforeunload=function (){
    if(event.clientX>document.body.clientWidth && event.clientY < 0 || event.altKey){
    alert("你关闭了浏览器");
    }else{
    alert("你正在刷新页面");
    }
    }
      

  7.   

    session自己是会自动过期的,设置过期时间就好了