39 个解决方案
#1
#2
做session监听
#3
论坛访问量大,用session太占服务器资源了 ,session负荷太大了。 而且时间也不够准确啊!
#4
如果是浏览器意外的关闭.
应该只能采用session
应该只能采用session
#5
是啊!那样子不是隔一个间隔检查一下用户是否在线,这样子如果访问量大的话对系统的压力也很大啊!而且这个时间间隔小的话服务器压力大,时间间隔大话的获得的在线时长就不准确了啊!
#6
用本次登陆时间和退出时间来算呢?
#7
#8
恩,但是登陆时间容易获得,但是用户的退出时间如何精确获得???????????
#9
应该是做的session监听。
#10
关注中...
#11
关注中...
#12
#13
能不能详细点
#14
在每个页面做一个监听,让客户端的浏览器去运行,不占服务器资源,当用户session不再或者掉线,则自动发送信息到服务器,计算时长,不过我不知道怎么实现,客户端都关闭了,呵呵,楼主找找像Google一样,将很多操作转嫁给客户的IE去执行的资料,呵呵,听说Google都能利用到我们访问者的内存,不知道真的假的,太可怕了,呵呵
#15
在登陆中做文章!
#16
呵呵 没遇见过类似的问题
有什么准确答案没!
有什么准确答案没!
#17
你可以在程序中设定session的失效时间
request.getSession().setMaxInactiveInterval(1800);
1800是秒
你还可以在服务器的配置里设置失效时间
request.getSession().setMaxInactiveInterval(1800);
1800是秒
你还可以在服务器的配置里设置失效时间
#18
17楼的,可是你的做法获得的在线时间并不精确,而且失效时间过于短的话,用户也会有意见的啊
#19
做session监听,我们的网站就是这样做的。 登陆的时候取时间,退出的时候也取时间,如不是正常退出,则在session失效的时候取时间。这本来就不要求很精确的时间的。
但要考虑用户关掉ie重复登陆的情况,把所有用户登陆,登出,失效的时间都记录下来,然后一天统计一次。统计完把数据清掉。
但要考虑用户关掉ie重复登陆的情况,把所有用户登陆,登出,失效的时间都记录下来,然后一天统计一次。统计完把数据清掉。
#20
不可能精确
#21
不过出于习惯,我还是google了一下。。。。。。: 关闭ie 执行 javascript
很遗憾,ff不能执行,但是ie可以。。。。。。。
也许可以找找针对不同浏览器的文档?
<!--
To change this template, choose Tools | Templates
and open the template in the editor.
-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
TODO write content
<script language="javascript">
//关闭窗口时自动退出
function window.onbeforeunload(){
alert("dddddddddd");
}
</script>
</body>
</html>
很遗憾,ff不能执行,但是ie可以。。。。。。。
也许可以找找针对不同浏览器的文档?
<!--
To change this template, choose Tools | Templates
and open the template in the editor.
-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
TODO write content
<script language="javascript">
//关闭窗口时自动退出
function window.onbeforeunload(){
alert("dddddddddd");
}
</script>
</body>
</html>
#22
这个问题我前几天还正考虑怎么做呢.
包括 帐户和密码 只能一个人登录和一个页面打开 如果另一个页面登录的时候会剔掉另一个已经存在的帐号.
也就是说的单点登录. 关闭网页 会记录退出记录
单点登录有一些组件可以用 页面意外关闭或有意关闭的时候 怎么去捕获退出? 用SESSION 感觉不太好 也没想到好的办法
包括 帐户和密码 只能一个人登录和一个页面打开 如果另一个页面登录的时候会剔掉另一个已经存在的帐号.
也就是说的单点登录. 关闭网页 会记录退出记录
单点登录有一些组件可以用 页面意外关闭或有意关闭的时候 怎么去捕获退出? 用SESSION 感觉不太好 也没想到好的办法
#23
单点登录你们是用什么做的?
#24
使用Session会比较好!
定义Session的有效期啊!
定义Session的有效期啊!
#25
要精确计时间不容易,使用session监听比较方便,但误差最大是一个session失效时间
如果使用定时器刷新用户在线计时器,只能应用在小压力下,压力大了就不行了
如果使用定时器刷新用户在线计时器,只能应用在小压力下,压力大了就不行了
#26
#27
我只用定时刷新,比如每1-2分钟刷新一次,如果有,则更新在线时间,如果超过2分钟没有更新则判定离线。
就是定时刷新。
就是定时刷新。
#28
用AJAX 做的吧...本人觉得 还没看到过做这个的AJAX代码
#29
登陆时存入Aplication 然后在监听它的失效时间
#30
不会吧,这样一个网站资源一下子就耗尽了,不会崩溃?
#31
貌似网易是这样做的
每个页面都有一段代码定时执行一次刷新,貌似是5分钟一次。
开一个Session,如果5分钟到了没有刷新就认为用户下线了。
每个页面都有一段代码定时执行一次刷新,貌似是5分钟一次。
开一个Session,如果5分钟到了没有刷新就认为用户下线了。
#32
就用session做 如果浏览器自动关闭 就利用JS监听 如果是断电 你可以设置SESSION的存活期
#33
不可以用session来做,大型网站需要考虑你用session会占用太多的资源最后导致速度下降等诸多问题。
可以用客户端自己来做
需要写一个接受客户端退出的监听线程服务单独来统计
具体的楼主可以留邮箱我发给你代码
可以用客户端自己来做
需要写一个接受客户端退出的监听线程服务单独来统计
具体的楼主可以留邮箱我发给你代码
#34
用application吧。。
#35
监听~~~~
#36
如果关闭浏览器可以用获取事件来得到正确退出时间
如果直接关机,是不可能准确得到退出时间的
服务器是通过session对客户端管理的,但session是服务器端的,
当客户端发出连接,服务器即时响应,连接断开,服务器用session暂存客户信息,但不知道客户端是否掉线.
所以服务器要有个设置session实效时间,超过这时间客户端没有连接,服务器自认为客户端断开.
如果直接关机,是不可能准确得到退出时间的
服务器是通过session对客户端管理的,但session是服务器端的,
当客户端发出连接,服务器即时响应,连接断开,服务器用session暂存客户信息,但不知道客户端是否掉线.
所以服务器要有个设置session实效时间,超过这时间客户端没有连接,服务器自认为客户端断开.
#37
能否发一份代码参考参考
top3372@163.com
#38
呵呵 也给我发份吧 学习下 谢谢
xuewenjun1206@gmail.com
#39
jianpc@gmail.com 谢谢!
#1
#2
做session监听
#3
论坛访问量大,用session太占服务器资源了 ,session负荷太大了。 而且时间也不够准确啊!
#4
如果是浏览器意外的关闭.
应该只能采用session
应该只能采用session
#5
是啊!那样子不是隔一个间隔检查一下用户是否在线,这样子如果访问量大的话对系统的压力也很大啊!而且这个时间间隔小的话服务器压力大,时间间隔大话的获得的在线时长就不准确了啊!
#6
用本次登陆时间和退出时间来算呢?
#7
#8
恩,但是登陆时间容易获得,但是用户的退出时间如何精确获得???????????
#9
应该是做的session监听。
#10
关注中...
#11
关注中...
#12
#13
能不能详细点
#14
在每个页面做一个监听,让客户端的浏览器去运行,不占服务器资源,当用户session不再或者掉线,则自动发送信息到服务器,计算时长,不过我不知道怎么实现,客户端都关闭了,呵呵,楼主找找像Google一样,将很多操作转嫁给客户的IE去执行的资料,呵呵,听说Google都能利用到我们访问者的内存,不知道真的假的,太可怕了,呵呵
#15
在登陆中做文章!
#16
呵呵 没遇见过类似的问题
有什么准确答案没!
有什么准确答案没!
#17
你可以在程序中设定session的失效时间
request.getSession().setMaxInactiveInterval(1800);
1800是秒
你还可以在服务器的配置里设置失效时间
request.getSession().setMaxInactiveInterval(1800);
1800是秒
你还可以在服务器的配置里设置失效时间
#18
17楼的,可是你的做法获得的在线时间并不精确,而且失效时间过于短的话,用户也会有意见的啊
#19
做session监听,我们的网站就是这样做的。 登陆的时候取时间,退出的时候也取时间,如不是正常退出,则在session失效的时候取时间。这本来就不要求很精确的时间的。
但要考虑用户关掉ie重复登陆的情况,把所有用户登陆,登出,失效的时间都记录下来,然后一天统计一次。统计完把数据清掉。
但要考虑用户关掉ie重复登陆的情况,把所有用户登陆,登出,失效的时间都记录下来,然后一天统计一次。统计完把数据清掉。
#20
不可能精确
#21
不过出于习惯,我还是google了一下。。。。。。: 关闭ie 执行 javascript
很遗憾,ff不能执行,但是ie可以。。。。。。。
也许可以找找针对不同浏览器的文档?
<!--
To change this template, choose Tools | Templates
and open the template in the editor.
-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
TODO write content
<script language="javascript">
//关闭窗口时自动退出
function window.onbeforeunload(){
alert("dddddddddd");
}
</script>
</body>
</html>
很遗憾,ff不能执行,但是ie可以。。。。。。。
也许可以找找针对不同浏览器的文档?
<!--
To change this template, choose Tools | Templates
and open the template in the editor.
-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
TODO write content
<script language="javascript">
//关闭窗口时自动退出
function window.onbeforeunload(){
alert("dddddddddd");
}
</script>
</body>
</html>
#22
这个问题我前几天还正考虑怎么做呢.
包括 帐户和密码 只能一个人登录和一个页面打开 如果另一个页面登录的时候会剔掉另一个已经存在的帐号.
也就是说的单点登录. 关闭网页 会记录退出记录
单点登录有一些组件可以用 页面意外关闭或有意关闭的时候 怎么去捕获退出? 用SESSION 感觉不太好 也没想到好的办法
包括 帐户和密码 只能一个人登录和一个页面打开 如果另一个页面登录的时候会剔掉另一个已经存在的帐号.
也就是说的单点登录. 关闭网页 会记录退出记录
单点登录有一些组件可以用 页面意外关闭或有意关闭的时候 怎么去捕获退出? 用SESSION 感觉不太好 也没想到好的办法
#23
单点登录你们是用什么做的?
#24
使用Session会比较好!
定义Session的有效期啊!
定义Session的有效期啊!
#25
要精确计时间不容易,使用session监听比较方便,但误差最大是一个session失效时间
如果使用定时器刷新用户在线计时器,只能应用在小压力下,压力大了就不行了
如果使用定时器刷新用户在线计时器,只能应用在小压力下,压力大了就不行了
#26
#27
我只用定时刷新,比如每1-2分钟刷新一次,如果有,则更新在线时间,如果超过2分钟没有更新则判定离线。
就是定时刷新。
就是定时刷新。
#28
用AJAX 做的吧...本人觉得 还没看到过做这个的AJAX代码
#29
登陆时存入Aplication 然后在监听它的失效时间
#30
不会吧,这样一个网站资源一下子就耗尽了,不会崩溃?
#31
貌似网易是这样做的
每个页面都有一段代码定时执行一次刷新,貌似是5分钟一次。
开一个Session,如果5分钟到了没有刷新就认为用户下线了。
每个页面都有一段代码定时执行一次刷新,貌似是5分钟一次。
开一个Session,如果5分钟到了没有刷新就认为用户下线了。
#32
就用session做 如果浏览器自动关闭 就利用JS监听 如果是断电 你可以设置SESSION的存活期
#33
不可以用session来做,大型网站需要考虑你用session会占用太多的资源最后导致速度下降等诸多问题。
可以用客户端自己来做
需要写一个接受客户端退出的监听线程服务单独来统计
具体的楼主可以留邮箱我发给你代码
可以用客户端自己来做
需要写一个接受客户端退出的监听线程服务单独来统计
具体的楼主可以留邮箱我发给你代码
#34
用application吧。。
#35
监听~~~~
#36
如果关闭浏览器可以用获取事件来得到正确退出时间
如果直接关机,是不可能准确得到退出时间的
服务器是通过session对客户端管理的,但session是服务器端的,
当客户端发出连接,服务器即时响应,连接断开,服务器用session暂存客户信息,但不知道客户端是否掉线.
所以服务器要有个设置session实效时间,超过这时间客户端没有连接,服务器自认为客户端断开.
如果直接关机,是不可能准确得到退出时间的
服务器是通过session对客户端管理的,但session是服务器端的,
当客户端发出连接,服务器即时响应,连接断开,服务器用session暂存客户信息,但不知道客户端是否掉线.
所以服务器要有个设置session实效时间,超过这时间客户端没有连接,服务器自认为客户端断开.
#37
能否发一份代码参考参考
top3372@163.com
#38
呵呵 也给我发份吧 学习下 谢谢
xuewenjun1206@gmail.com
#39
jianpc@gmail.com 谢谢!