我现在以一个用户身份登录到一个Web系统中,系统会记录当前登录用户的Session,并将当前用户的登录信息记载到在线用户列表中,(这个在线用户列表是用静态DataTable实现的,不是用数据库),我想如果我不注销系统,而是直接关闭浏览器,这是该用户信息还在在线用户列表中,所以不能再次登录了,请问在直接点击关闭浏览器时,在Web程序中会引发什么事件,这样我就可以将当前用户从在线列表中删除,就不会出现问题了????

解决方案 »

  1.   

    1,用户列表是否可以有重复的用户登陆?如果可以,登录当然没问题;不可以的话,像你所说的,已关闭的用户信息还在列表中,Session中的信息还会保存下来的(浏览器关闭时间没有超一定的session的一个叫什么连接时间)
    2,关闭浏览器引发session_end事件???
      

  2.   

    想想如果用户把机器店员踢掉了,还能引发什么事件?
    我能想到的唯一的办法就是定期,比如10秒钟,postback一次,假如服务器超过30秒钟没有收到postback,则认为用户已经掉线。
      

  3.   

    没有任何事件。在浏览器端,任何网页变化都会发生 onunload 事件,而不仅仅是管理浏览器。如果你全站是Ajax,也就是说页面从来不刷新,整个网站只有一个页面,可以使用onunload或者onbeforeunload事件来捕获离线。我就是这样做的。对于一般的页面,超时作为离线是平常的做法