我有个站,用户登陆的时候放在session里
问题是:站里有很多页,用户直接关闭浏览器的时候我如何捕获,这个关闭必须是客户彻底离开了本站,要是他正在浏览本站的2个页,关了一个,这不能算离开,我研究挺长时间了,不知道怎么办好,求各位大大帮忙啊........

解决方案 »

  1.   

    很难实现,就算实现,代价也会很高,不值得,你可以把session时间设置短一点就行了
      

  2.   

    HTTP数据无状态连接,所以无法准确捕捉到在线用户.不过可以通过一些方法计算当前在线的大概人数
    比如:将用户登陆的SESSION存储到数据库中,默认超时假设30分钟,当用户在你的各个页面进行访问时在数据库中增加用户状态时间(当前时间+30)  ,同时删除当前时间-30的用户然后计算你当前数据库里面的用户个数.不知道以上对你有没有用
      

  3.   

    session监听器是在服务器端监听,客户端的动作它是无法监听到的
      

  4.   

    在你网站的每个页面中嵌入一个用户看不见的Applet,用这个Applet和服务器保持连接,不时发送用户的在线信息给服务器。如果安全机制允许的话,也许可以满足你的要求 ^_^
      

  5.   

    session监听器大致上是能实现的。但是反应可能会不够灵敏。
      

  6.   

    http的无序性决定了这个问题无法根本解决,如果说解决也只能是采取一些模拟逼近的方法,繁琐并且系统开销大。
      

  7.   

    用applet是可以, 可是有的客户端不愿意安装它, 有安全问题, 就比较郁闷了
      

  8.   

    xmlhttp定时访问服务器,如果这个定时访问没有了,表明用户退出了
      

  9.   

    根据一定规则,用一个单例模式为每个访问页面的用户(不需要登录)生成一个唯一的识别ID,保存到内存中,同时保存它的创建时间,并将它保存到session中, 页面中将这个session中的id取出,每隔一段时间向服务器发送信号,同时修改内存中这个ID的创建时间,在服务器端定时对这个内存块进行监视,如发现有ID的时间了你设置的时间没有更新后,即访问者已退出网站页面.