Jsp 删除未按“注销”按钮而离开网站时在线的用户

Jsp 删除未按“注销”按钮而离开网站时在线的用户,jsp,Jsp,我正在开发一个网站,显示谁是在线的。我的意思是,当一个用户在线时,网站会显示他在那个时刻在线的所有朋友 我使用这种方式来确定在线列表:当您登录网站时,一条新记录将插入到名为online_list的表中。当您单击“注销”按钮时,会话将被删除,并与联机列表表中的相应记录相同 问题是,当用户未单击“注销”按钮就离开我的网站时,我如何从在线列表表中删除他的会话。您需要使用JavaScript来完成此操作。您可以在卸载之前使用事件 即使用户打开多个选项卡?事件将执行多次?您需要在内部跟踪。用户登录增量登录

我正在开发一个网站,显示谁是在线的。我的意思是,当一个用户在线时,网站会显示他在那个时刻在线的所有朋友

我使用这种方式来确定在线列表:当您登录网站时,一条新记录将插入到名为online_list的表中。当您单击“注销”按钮时,会话将被删除,并与联机列表表中的相应记录相同


问题是,当用户未单击“注销”按钮就离开我的网站时,我如何从在线列表表中删除他的会话。

您需要使用JavaScript来完成此操作。您可以在卸载之前使用事件

即使用户打开多个选项卡?事件将执行多次?您需要在内部跟踪。用户登录增量登录计数变量1。用户关闭一个选项卡,递减。如果登录计数变量达到0,那么您知道这是最后一个选项卡。是的,这是一个好方法。但我认为我们应该使用jsp进行计数,对吗?此外,这种方式还有一个问题,那就是当浏览突然关闭时(即当它断电或发生错误appscrash…)。在这种情况下,用户仍将在线?您正在使用Java进行计数。您正在使用AJAX与服务器通信。如果计算机立即关闭,你将无能为力。通常使用身份验证系统,如果在一段时间后没有任何活动,它会自动将您注销。因此,即使系统报告有两个选项卡打开,用户也会在x时间后注销,无论是否有任何选项卡打开。这样,如果用户的计算机崩溃或意外关机,您就不会报告用户一直在线。