JavaEye的那个“用户状态”是怎么实现的

这几天一直在想,JavaEye是怎么实现用户状态的,知道的童鞋请发言,再就是如果用java怎么实现?

4个回答

用一个字段,你访问了某些页面,就用这个字段记录你访问的页面。

[quote]能不能说清楚点?[/quote]

哎,好吧:

1 假设数据库里某个表记录用户访问的历史。当然,不是用户访问每个页面都记录的,根据观察,je只有在用户访问部分页面时才进行记录。该表有个字段,可以定义成枚举型: 比如可以定义三种类型: 看帖子,看招聘,看问答等等,当用户访问特定页面后,记录一条用户访问历史。 当你浏览一个帖子,该帖子有改用户的留言,只要查询该用户最新的访问记录是什么类型就行了,当然,一般来说对这个这个记录有个过期时间,超过这个时间应该就没有效果了。

2 上面是一种实现方法,缺点是需要进行连接操作,效率比较低,实践中,je也可能这样实现: 没有上面的表,当用户访问特定的页面时,不往数据库里记,而是把访问信息记录到memcache里,下次直接从memcache里拿数据就行了,而且memcache里存数据可以设有效期,到期自动作废,内存也释放了。

后一种做法效率高,但是缺点是用户访问历史可能是比较好的分析用数据,不记有点可惜。

[quote]是怎么判断用户已经下线呢?
[/quote]

用户点退出按钮会向服务器端发请求,表示下线。

[quote]就是判断用户下线问题我想不明白,很多用户不会乖乖按退出按钮,就是直接关闭页面完事了,如果用js 控制 unload时间在用户关闭窗口时发送ajax事件提醒服务器进行处理,但是用户刷新也会触发unload事件..[/quote]

设个过期时间,一段时间用户不上线就代表下线。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐