怎样统计精确的在线人数?

问题描述

最近所做的一个项目需要用到的统计在线用户状态,上网搜索了一下发现现有的解决方案对用户意外退出的处理均不是太理想!需要关闭浏览器精确统计!不用Global.asax和Session有其他办法么?

解决方案

解决方案二:
仍然需要一种机制用来保存用户的活动时间。然后根据这个时间来计算用户是否在线。你可以使用Cache机制来保存,也可以使用Session,甚至可以使用SQL2005。
解决方案三:
使用数据库设计在线用户列表思想:显示在线用户模块:在数据库中只读出登陆时间加上30秒不小于当前时间的用户。更新用户时间模块:每隔30秒就更新一次数据库中,与当前用户对应的最新时间值
解决方案四:
呵呵。。。谢谢给予提示。。。
解决方案五:
学习来着
解决方案六:
mark
解决方案七:
学习
解决方案八:

解决方案九:
这个没有太精确的办法!都是一个大概数据!~最好的方法应该还是在Global.asax里操作吧!
解决方案十:
iframe内嵌一个不停刷新的页面,报告此人在线
解决方案十一:
学习
解决方案十二:
精确统计是不可能的,只能近似,近似度越高,服务器负担越重.通常我的做法是用户每次访问页面,记录下他最后一次操作的时间,然后在数据库查询这个时间离当前时间的分钟数,5分钟以内算在线.
解决方案十三:
我顶11楼
解决方案十四:
5分钟太长,何况很多人看页面时会超过5分钟,而此时此人确实在看页面,并没有转到其它网站页面或者关闭浏览器。有时候离线状态与用户操作紧密相关,例如单点登录要求,如果一个人离线之后5分钟之后再次用同样帐号登录需要等5分钟,很让人烦躁。所以保证能20秒~1分钟之内就感知用户是否在线的方案,对许多应用是比较实用的。你可以创建一个用户控件,例如取名“页脚.ascx”,可以这样设计:<%@ControlLanguage="C#"AutoEventWireup="true"CodeBehind="页脚.ascx.cs"Inherits="MyApp.页脚"%><asp:UpdatePanelID="UpdatePanel1"runat="server"UpdateMode="Conditional"><ContentTemplate><asp:TimerID="Timer1"runat="server"Interval="20000"OnTick="Timer1_Tick"></asp:Timer>最近1分钟有<asp:LabelID="Label1"runat="server"SkinID="重点提醒文字"EnableViewState="false"/>个用户访问。<asp:LabelID="Test"runat="server"EnableViewState="False"Text="版权信息"Visible="False"></asp:Label></ContentTemplate></asp:UpdatePanel>然后在你的每个页面拖入这个ascx到最底部中间。在Timer_Tick中应该将当前用户的登录信息与访问时间刷新到统计数据库。
解决方案十五:
在Frame中放页面的方法,很少有专业web程序员会采用。因为它会让页面底部进度条不断“闪动”,自从ajax在国内普遍使用之后就很难见到原来那么实现的了。
解决方案:
引用13楼sp1234的回复:

5分钟太长,何况很多人看页面时会超过5分钟,而此时此人确实在看页面,并没有转到其它网站页面或者关闭浏览器。有时候离线状态与用户操作紧密相关,例如单点登录要求,如果一个人离线之后5分钟之后再次用同样帐号登录需要等5分钟,很让人烦躁。所以保证能20秒~1分钟之内就感知用户是否在线的方案,对许多应用是比较实用的。你可以创建一个用户控件,例如取名“页脚.ascx”,可以这样设计:<%@ControlLanguage="C#"…

这个说法有问题,判断单点登录我完全可以执行另一套标准,比如离最后操作时间一分钟,30秒等等。这两种判断(即单点登录和是否在线)都只需要一个数据,就是用户最后操作时间。所不同的只是离当前时间的间隔。

时间: 2024-07-29 13:02:44

怎样统计精确的在线人数?的相关文章

又一种在线人数统计方法(只用1个APPLICATION,原创)

application|统计|原创|在线|在线人数 最普通的方法是用SESSION,但缺点是无法即时反应在线情况(有超时时间)和占用服务器资源(如果有100人在线就有100个SESSION,想想看8):上次(好象间隔很久了耶)介绍了一种采用APPLICATION+COOKIES的方法,但实现方法有些烦琐同时还要设一个隐藏的自刷新页面.这种方法则避免了以上的弊病,经实践,效果不错(例子:WWW.ATERSOFT.COM/BBS),具体如下:假定INDEX.HTM为框架网页,包含ID=LEFT,ID

统计人数-ASP.NET怎么样不通过session统计在线人数

问题描述 ASP.NET怎么样不通过session统计在线人数 我们家网站sessionmode是StateServer,不会进入Session_end方法,现在客户要求做一个统计在线人数的功能,该怎么做?? 解决方案 建立一个数据库表,记录sessionid和开始时间,session_start的时候表中写入sessionid和开始时间,并且执行下删除语句(开始时间大于30分钟的记录,这个间隔自己定了),然后更新下application计数. 用户每次访问页面的时候更新sessionid对应的

php实现统计网站在线人数的方法_php技巧

本文实例讲述了php实现统计网站在线人数的方法.分享给大家供大家参考.具体实现方法如下: <?php function getIpAddress() { // 取得当前用户的IP地址 if (getenv('HTTP_CLIENT_IP')) { $ip = getenv('HTTP_CLIENT_IP'); } elseif (getenv('HTTP_X_FORWARDED_FOR')) { $ip = getenv('HTTP_X_FORWARDED_FOR'); } elseif (ge

高访问量情况下,在线人数的统计,比如腾讯 ?????????

问题描述 高访问量情况下,在线人数的统计,比如腾讯 ????????? 解决方案 java统计在线人数对于登录信息时使用session存储的,所以我这里是通过实现HttpSessionAttributeListener这个接口完成的. 1.实现接口类,在web.xml文件中配置监听类,从而可以使该类完成其工作. public class SessionListener implements HttpSessionAttributeListener { public void attributeA

php简单统计在线人数的方法_php技巧

本文实例讲述了php简单统计在线人数的方法.分享给大家供大家参考,具体如下: <?php //首先你要有读写文件的权限 //本程序可以直接运行,第一次报错,以缶涂梢? $online_log = "count.dat"; //保存人数的文件, $timeout = 30;//30秒内没动作者,认为掉线 $entries = file($online_log); $temp = array(); for ($i=0;$i<count($entries);$i++) { $en

被动式统计网站在线人数

在学校里不能上网时,没事做就改了下blog程序,加上了个blog在线人数统计.在此之前也看了几种统计在线人数的代码,感觉都不太符合自己的要求,就结合blog程序自己写了一个,应用到我的blog上. 在Fdream的blog里提到了一些关于ASP统计在线人数的方法,具体可以看这里. 为了兼顾准确率与效率,我采用了被动的方式来统计在线人,即当有新访客时才更新在线人数.不知道网上有没有已经有人使用了这种方法,不过我现在用的完全是自己想的^_^. 在L-Blog中采用Session来判断访客是否为新访客

Dreamweaver构建Blog全程实录(9)-站点统计

dreamweaver|统计|站点 第九章  站点统计的实现 目前为止,Doking's BLOG已可以运作了.但可以发现左边的导航还是空空的,下面的章节主要为左边导航添加功能菜单.这一章主要讲解在左边导航上添加有关站点统计. 9.1  基本页面设计 打开模板dkblog.dwt.aspx,在左边导航上添加文字设计如图9-1所示. 图9-1  模板dkblog.dwt.aspx左边导航文字设计 9.2  在线人数统计 在线人数统计的实现得依靠global.asax文件.global.asax文件

Dreamweaver构建Blog(9):站点统计

dreamweaver|统计|站点 目前为止,Doking's BLOG已可以运作了.但可以发现左边的导航还是空空的,下面的章节主要为左边导航添加功能菜单.这一章主要讲解在左边导航上添加有关站点统计. 9.1  基本页面设计 打开模板dkblog.dwt.aspx,在左边导航上添加文字设计如图9-1所示. 图9-1  模板dkblog.dwt.aspx左边导航文字设计 9.2  在线人数统计 在线人数统计的实现得依靠global.asax文件.global.asax文件包括了处理应用程序层次事件

利用ASP显示当前在线人数

显示|在线|在线人数|在线|在线人数 眼下,作网站已成为一种时尚,各式各样的网站如雨后春笋般冒了出来.有用CGI制作的,有用ASP制作的,还有用PHP制作的,不一而足.有一些网站则能统计出当前的在线人数,如:"目前有32人在线".那么,用ASP制作的网站怎样显示当前的在线人数呢?       当用ASP制作的网页都存放与WWW服务器的基点目录并且WWW服务器启动之后,每当有对ASP文件的HTTP请求时,服务器都会去读取基点目录下的Global.asa文件.为了统计网站的在线人数,我们可