譬如一个论坛,用户登录时,数据库online字段改为在线状态,当下线是则改为离线状态,本来正常注销的话可以调用更改状态的方法,但是当用户直接关闭浏览器时就开始出现问题了,我也可以用js监听浏览器关闭事件,但是碍于总有那么几款rubbish的浏览器不支持,而且这个方法并不周全,譬如 用户突然 断电了 断网了等不可预知的事件,所以放弃js这种方式,没办法就在这里来求思路了,大神们,帮帮小弟呗......分不够可以再+ + +
解决方案 »
- 关于FTP文件下载的
- The endpoint reference (EPR) for the Operation not found解决思路
- struts+ibatis的问题
- 请问怎么样在TOMCAT运行窗口把具体报错的行数显示出来啊?急啊
- js 禁止子窗口的操作 求大神指教
- hibernate 插入 Clob 问题,求助
- 各位有没有听过“中企动力”,这家公司如何?
- 求救:操作数据库时遇到的问题 [在线]
- 菜鸟100求教:J2EE架构中读取配置文件路径问题?---在线等ing
- 基于Druid连接池的JdbcTemplate.queryForObject 一直返回空对象
- pager-taglib的pg:index有什么作用呢
- 怎么根据WSDL文件来生产客服端代码,越详细越好
2、每次用户在论坛上操作的时候,把内存的在线时间改为最后操作时间
3、写一个服务程序,轮询读取内存中各个用户的状态,当发现时间超过比如30分钟,就同时把数据库改为离线,并清空内存数据使用内存是为了避免频繁更新数据库肯定有不合理的地方,希望大家一起指正、学习
session是在服务器端,不用浏览器支持是这样一般服务器端可以配置一个session(会话)的超时时间当session超时的时候,也就是用户很久没有操作的时候,在服务器端可以监听捕获这个事件,然后你可以修改数据库再顶一楼
我们想法都差不多,我怎么没想到用HttpSessionListener呢
关闭浏览器后,session不会马上销毁的,session是有个超时时间的,超时过后才会调用sessionDestroyed就像新浪微博登陆在线后,关了浏览器也要2~5分钟才会显示为下线。如果,你需要关闭浏览器及时显示为下线,可以采用2楼和4楼的方法,但推荐楼主使用HttpSessionListener
lz有没有什么好的建议!