关闭浏览器说明session过期,可以用session控制

解决方案 »

  1.   

    关闭浏览器与session过期还不是一回事吧,不过这里能做到的精度也就是session的过期时间了。由于http协议是无状态的协议,实际上用户关不关浏览器对服务器端看来是没有任何分别的。可能这样做还能精确一点:
        在关闭的时候用JavaScript的用户的cookie里记下当前的时间,这样当这个用户再次访问你的网站的时候,就可以读到这个时间了。
    这样做可能还是有意义的,毕竟只来一次,不来第二次的用户你去统计它上站的时间长短是没有意义的。
      

  2.   

    你可以在<body onunload="window.open('close.jsp','','width=1,height=1')">close.jsp记录用户关闭时间,然后在自动关闭
      

  3.   

    可不可以具体一点,
    yanchang(笨笨) 
    如果有很多页面,都要加onunload吗?我觉得 kicku() 说的有道理,但不知道在JSP中如何实现
      

  4.   

    我觉得cookie不一定好,如果纪录cookie的文件被删(比如重做机器,或是用户禁用cookie),那我登陆的时间岂不再也算不出来了?
    还是应该在关闭的时候做操作。
      

  5.   

    Hikaru(光)
    请问高手具体怎么做啊!哪怕是给一点思路也是可以的
      

  6.   

    真的是个很困难的问题。
    我有个想法,就是在页面上放一个iframe,定期自动刷新,因为没什么数据量,所以不会影响什么速度,甚至不会被察觉,刷新让server知道这个client端还存在,每刷新一次,算一次在线时间,所以关掉窗口到算出时间的误差最多不会超过一次刷新时间的,应该可以忽略,很多能显示在线好友的网站大概就是这样做的,比如www.xici.net,注意它左下角的那块在线好友名单总是不停的在自动刷新,你下线了,你的好友也会发现你下线了,这里有个时间差就是刷新时间了。
    不知道这样说对你有没有帮助。