社区
Web 开发
帖子详情
用户在线时间统计
wlzfoefesfsifseff
2010-07-07 04:40:55
j2ee项目怎样获得用户在线时间。
其中用户登录时间很容易获得,但登出时间可能有
如下几种情况:
1、用户点击登出按钮,正常登出,这样很容易记录登出时间。
2、用户直接关闭浏览器。
3、用户关闭浏览器相应的tab页(不同浏览器)。
4、用户长时间无操作,session过期。
5、用户直接关机。
对于上述几种情况有没有能够完全做到记录登出时间的方法。
请高手指点。
...全文
862
22
打赏
收藏
用户在线时间统计
j2ee项目怎样获得用户在线时间。 其中用户登录时间很容易获得,但登出时间可能有 如下几种情况: 1、用户点击登出按钮,正常登出,这样很容易记录登出时间。 2、用户直接关闭浏览器。 3、用户关闭浏览器相应的tab页(不同浏览器)。 4、用户长时间无操作,session过期。 5、用户直接关机。 对于上述几种情况有没有能够完全做到记录登出时间的方法。 请高手指点。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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)
php
统计
用户
使用
时间
,php下
统计
用户
在线
时间
的几种方法
在web开发中,
统计
用户
在线
时间
是一个挑战。本文介绍了三种PHP实现方法:1) 客户端定时发送请求,适用于频繁交互的场景;2) 服务器定时轮询,需要服务器控制权限;3)
用户
活动时更新登出
时间
,简单且适用于大多数网站。每种方法都有其优缺点,可以根据实际需求选择适合的方案。
mysql
统计
用户
在线
时长_
统计
用户
在线
时间
的一种尝试
文章探讨了在Web开发中如何准确
统计
用户
在线
时间
,提出了三种常见方法:1) 客户端定时发送请求更新登出
时间
,适用于Webgame;2) 服务器定时轮询脚本检查session_id,需要服务器控制权;3)
用户
每次活动更新登出
时间
,简单且适用于多数网站,但增加数据库操作。重点介绍了第三种方法的实现细节。
ASP
统计
用户
在线
时间
本文介绍了一种通过在每个网页的conn.asp文件中嵌入隐藏的定时刷新iframe来实现
用户
在线
时长
统计
的方法。该方法利用ASP技术更新数据库中的
在线
时间
。
ASP
统计
用户
在线
时间
本文介绍了一种在ASP环境中不使用Ajax实现
用户
在线
时长
统计
的方法。通过在
用户
登录时记录
时间
并在每个页面中嵌入一个定时刷新的隐藏页面来更新数据库中的
在线
时长。
PHP实现
用户
在线
时间
统计
详解
本文详细介绍了如何使用PHP
统计
用户
在线
时间
。通过创建'online_time'数据库表,记录
用户
登录和注销
时间
,再利用PHP代码计算
时间
差,从而得出
用户
总
在线
时间
。实际应用中需考虑复杂
统计
和错误处理。
Web 开发
81,111
社区成员
341,725
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章