zoukankan
html css js c++ java
关于用户在线
//
需求如题(估计平均在线人数几百,最大在线人数3000),
//
初步想法如下,欢迎提提意见:
public
class
UserOnLine
{
public
static
void
pageLoad(System.Web.UI.Page page)
{
int
minutes
=
5
;
//
定义5分钟页面不回传用户下线
DataTable dt
=
null
;
if
(page.Application[
"
UserOnLine
"
]
!=
null
)
{
dt
=
(DataTable)page.Application[
"
UserOnLine
"
];
}
else
{
dt
=
new
DataTable();
dt.Columns.Add(
"
UserName
"
);
dt.Columns.Add(
"
FirstLoadTime
"
);
dt.Columns.Add(
"
LastLoadTime
"
);
}
//
将当前用户添加到在线用户列表
string
userName
=
page.Session[
"
username
"
].ToString();
DataRow[] rows
=
dt.Select(
"
UserName='
"
+
userName
+
"
'
"
);
if
(rows.Length
>
0
)
rows[
0
][
2
]
=
System.DateTime.Now.ToString();
else
dt.Rows.Add(
new
object
[]
{userName,System.DateTime.Now.ToString(),System.DateTime.Now.ToString()}
);
dt.AcceptChanges();
//
筛选长时间没有PostBack的用户,认为已经下线
DataRow[] downRows
=
dt.Select(
"
Convert(LastLoadTime,'System.DateTime')<Convert('
"
+
System.DateTime.Now.AddMinutes(
-
minutes).ToString()
+
"
','System.DateTime')
"
);
for
(
int
i
=
0
;i
<
downRows.Length;i
++
)
{
//
将downRows[i]的记录保存到数据库
downRows[i].Delete();
}
dt.AcceptChanges();
page.Application[
"
UserOnLine
"
]
=
dt;
}
}
//
在每个页面的Page_Load的时候调用此方法;
//
由于我的项目所有的页面都是继承子一个basePage类,该类继承System.Web.UI.Page,所以实际上并不需要改动任何一个页面,而只需要改一下basePage类就可以了。
查看全文
相关阅读:
Magento安装教程
让老婆爱你的十大方法。
easy ui layout设计
下交叉综合症
fileloder.js+struts2实现文件异步上传,无页面刷新效果。
将mysql中的Blob的图片在jsp中显示
详解CSS样式的position属性
Struts2与Spring的整合
Play Framework常用标签list,set,如何遍历list、map类型数据
我所理解的团队
原文地址:https://www.cnblogs.com/acelove/p/86228.html
最新文章
(实践篇)剖析最近项目使用的一个框架
(转)Asp.Net 用Jquery和一般处理程序实现无刷新上传大文件
(理论篇).net页面的生命周期
REST
J2ME网络连接
OAuth认证协议原理分析及使用方法
Linq 中按照多个值进行分组(GroupBy)
GridView TemplateField 动态添加取消颜色
汉字字段按拼音首字母实现分组排序
Repeater的分页
热门文章
没有为扩展名“.html”注册的生成提供程序
Asp.net 动转静 伪静态和真静态
在用Urlrewrite.dll实现伪静态时,真实静态无法访问!
页面编码,传参使用中文时的问题
虚拟主机下asp.net 2.0的验证控件失效
asp.net让FCKEditor上传图片到动态指定的目录
jdk、tomcat的安装和配置
Linux 命令收录
IbatisNet orm框架探视
申请转正内容
Copyright © 2011-2022 走看看