社区
Web 开发
帖子详情
用户在线时间统计
wlzfoefesfsifseff
2010-07-07 04:40:55
j2ee项目怎样获得用户在线时间。
其中用户登录时间很容易获得,但登出时间可能有
如下几种情况:
1、用户点击登出按钮,正常登出,这样很容易记录登出时间。
2、用户直接关闭浏览器。
3、用户关闭浏览器相应的tab页(不同浏览器)。
4、用户长时间无操作,session过期。
5、用户直接关机。
对于上述几种情况有没有能够完全做到记录登出时间的方法。
请高手指点。
...全文
778
22
打赏
收藏
用户在线时间统计
j2ee项目怎样获得用户在线时间。 其中用户登录时间很容易获得,但登出时间可能有 如下几种情况: 1、用户点击登出按钮,正常登出,这样很容易记录登出时间。 2、用户直接关闭浏览器。 3、用户关闭浏览器相应的tab页(不同浏览器)。 4、用户长时间无操作,session过期。 5、用户直接关机。 对于上述几种情况有没有能够完全做到记录登出时间的方法。 请高手指点。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
22 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
用户昵称不能为空
2010-09-27
打赏
举报
回复
LZ的方案和我一样,这个里面必须用到Ajax,存的话必须存入到数据库里面。
用户昵称不能为空
2010-09-27
打赏
举报
回复
[Quote=引用 1 楼 lianfeng2478 的回复:]
在页面上每隔一秒发送一次请求,然后记录时间
[/Quote]
每一秒发送,你不消耗吗。。。。
yxhhcy911
2010-07-08
打赏
举报
回复
1.可以用本地JS计算好时间,用户正常关闭发送时间到服务端。
2.非正常关闭检查SESSION是否关闭,来计算时间,设置SESSION过期时效,通过请求应答维持SESSION状态
这两点在用户在线的时候是不会访问数据库执行UPDATE操作的,只有当用户正常退出或者SESSION关闭的时候才会执行UPDATE
gao512008
2010-07-08
打赏
举报
回复
[Quote=引用 9 楼 superboo 的回复:]
引用 8 楼 superboo 的回复:
后台 session 超时设置 为1分钟
前台 加ajax 每隔10秒 请求后台 刷新session
这样 后台session 1分钟内 得不到刷新 就会自动 销毁 加入session监听 当销毁时 清空用户记录 统计在线时间
这样 不论用户是 关机 关闭页面 还是==== 只要 断开了 会话 1分钟后……
[/Quote] 牛
SuperBoo
2010-07-08
打赏
举报
回复
[Quote=引用 17 楼 salon122 的回复:]
引用 4 楼 wzglovejava 的回复:
在页面上进行计时,然后在用户关闭浏览器等操作时,使用Ajax将这个时间值写入数据库。
在页面上进行计时,然后在用户关闭浏览器等操作时,使用Ajax将这个时间值写入数据库。
[/Quote]
他的问题就是 怎么知道浏览器关闭
楼主 这个问题 只能用 服务器推送技术来看客户端状态了
salon122
2010-07-08
打赏
举报
回复
[Quote=引用 4 楼 wzglovejava 的回复:]
在页面上进行计时,然后在用户关闭浏览器等操作时,使用Ajax将这个时间值写入数据库。
[/Quote]
在页面上进行计时,然后在用户关闭浏览器等操作时,使用Ajax将这个时间值写入数据库。
haoyuan0815
2010-07-08
打赏
举报
回复
[Quote=引用 5 楼 closewbq 的回复:]
引用 4 楼 wzglovejava 的回复:
在页面上进行计时,然后在用户关闭浏览器等操作时,使用Ajax将这个时间值写入数据库。
定时通过ajax来记录吧。也不用每秒,每5秒请求次就行。
[/Quote]
可以考虑这个!
xnx3cn
2010-07-08
打赏
举报
回复
用一个int记录,当用户离开后,session中发送这个int数据至服务器,
zhouxuegangjava163
2010-07-08
打赏
举报
回复
你好,楼主!
当浏览器关闭或者session 失效,能不能写个触发器,把当时的时间写入数据库?
个人逻辑而已。
xmy8882040810
2010-07-08
打赏
举报
回复
对的,肯定过段时间就需要销毁session
[Quote=引用 11 楼 wlzfoefesfsifseff 的回复:]
引用 8 楼 superboo 的回复:
只要开着浏览器 永远不会断开
这样不符合业务需求,肯定是要过了一定的时间没有操作session就要销毁,用户得重新登录。
[/Quote]
焙焙龙
2010-07-08
打赏
举报
回复
通常采用客户端发送心跳信号,以示其存活,当后台若干时间接收不到对应的心跳信号,则判定该用户已经下线
wlzfoefesfsifseff
2010-07-08
打赏
举报
回复
[Quote=引用 8 楼 superboo 的回复:]
只要开着浏览器 永远不会断开
[/Quote]
这样不符合业务需求,肯定是要过了一定的时间没有操作session就要销毁,用户得重新登录。
jnhcd
2010-07-08
打赏
举报
回复
mark
SuperBoo
2010-07-08
打赏
举报
回复
[Quote=引用 8 楼 superboo 的回复:]
后台 session 超时设置 为1分钟
前台 加ajax 每隔10秒 请求后台 刷新session
这样 后台session 1分钟内 得不到刷新 就会自动 销毁 加入session监听 当销毁时 清空用户记录 统计在线时间
这样 不论用户是 关机 关闭页面 还是==== 只要 断开了 会话 1分钟后就会 自动销毁session 只要开着浏览器 ……
[/Quote]
看清楚了 每隔 10秒 刷新session 可没让你 去 存数据库
String id = request.getSession().getId();
System.out.println("------------------session: " +id+" 刷新了----------------");
这样就行
SuperBoo
2010-07-08
打赏
举报
回复
后台 session 超时设置 为1分钟
前台 加ajax 每隔10秒 请求后台 刷新session
这样 后台session 1分钟内 得不到刷新 就会自动 销毁 加入session监听 当销毁时 清空用户记录 统计在线时间
这样 不论用户是 关机 关闭页面 还是==== 只要 断开了 会话 1分钟后就会 自动销毁session 只要开着浏览器 永远不会断开
wlzfoefesfsifseff
2010-07-08
打赏
举报
回复
[Quote=引用 6 楼 hb308102796 的回复:]
其实还有问题,用户点击X关闭都是属于正常关闭,我想LZ现在困惑的是怎么样在不降低性能且能够在异常退出情况下记录数据的方法
[/Quote]
还有没有好的方法?
优秀APP开发
2010-07-07
打赏
举报
回复
[Quote=引用 5 楼 closewbq 的回复:]
引用 4 楼 wzglovejava 的回复:
在页面上进行计时,然后在用户关闭浏览器等操作时,使用Ajax将这个时间值写入数据库。
定时通过ajax来记录吧。也不用每秒,每5秒请求次就行。
[/Quote]
其实还有问题,用户点击X关闭都是属于正常关闭,我想LZ现在困惑的是怎么样在不降低性能且能够在异常退出情况下记录数据的方法
closewbq
2010-07-07
打赏
举报
回复
[Quote=引用 4 楼 wzglovejava 的回复:]
在页面上进行计时,然后在用户关闭浏览器等操作时,使用Ajax将这个时间值写入数据库。
[/Quote]
定时通过ajax来记录吧。也不用每秒,每5秒请求次就行。
wzglovejava
2010-07-07
打赏
举报
回复
在页面上进行计时,然后在用户关闭浏览器等操作时,使用Ajax将这个时间值写入数据库。
Zous000888
2010-07-07
打赏
举报
回复
要看是做啥用的,如果不是对登出时间特别要求的话,一分钟一次请求也可以。
如果可以的话,帮我解决个问题。
http://topic.csdn.net/u/20100707/17/6745a4f8-865f-420f-b381-434c0f8ce80d.html
加载更多回复(2)
JSP版流量
统计
系统
看起来有点像大洲的那个,jsp中算不错的啦.值得下载回去研究研究
企业人事工资考勤管理系统(c#源码)
企业人事工资考勤管理系统(c#源码)
php实现
用户
在线
时间
统计
详解
1、客户端定时发送请求到服务器端。实现方法是在
用户
登录后,将uid,session_id,login_time插入一条记录,然后在客户端js设定一个计时器,比如每10分钟向服务器端发送一个请求,以此来达到更新登出
时间
的目的,当然这个间隔
时间
设定的越短,数据可能会越准确,不过相应的系统的负载也会越高,这个可以根据实际情况设定一个合适的值。这种方法广泛应用于webgame上,因为webgame的几乎所
统计
用户
页面
在线
时长
统计
用户
页面
在线
时长 1.背景 监测
用户
的页面停留
时间
,了解
用户
的工作效率。 2.分析 将
用户
行为分为三个周期: 1.进入页面:首次进入,路由跳转,浏览器前进、后退,页面刷新 2.活跃状态切换:窗口最小化,浏览器Tab切换,鼠标、键盘长
时间
无操作,锁屏、休眠,页面遮挡 3.离开页面:页面关闭,路由跳转,浏览器前进、后退,页面刷新 监听
用户
进入和离开: window.onload 和 window.onbeforeunload 可以监听页面的进入和离开(无法监听单页面多应用的切换) Vue-router 的
实时
用户
在线
人数
统计
(一):表
统计
在项目中有时候需要
统计
实时
在线
人数,在我过往的项目中,主要实施过以下几种方案,现在一一来说明下: 1)表
统计
:用数据表
统计
在线
人数,缺点是当并发量大的时候可能造成性能瓶颈,如无特别大的并发的时候完全可以胜任 2)Redis有序集合:因为在内存中,所以效率很高,可以
统计
某个
时间
段内的
在线
人数,还可以做各种聚合操作。但是如果
在线
人数比较多的情况下,会比较占用内存。 3)Redis HyperLo...
Web 开发
81,122
社区成员
341,744
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章