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类就可以了。
查看全文
相关阅读:
冲刺阶段站立会议每天任务7
冲刺阶段站立会议每天任务6
冲刺阶段站立会议每天任务5
冲刺阶段站立会议每天任务4
《梦断代码》读后感一
第一次冲刺项目总结
书店促销问题
用户需求调研报告
需求分析
返回二维数组最大子数组的和(2)
原文地址:https://www.cnblogs.com/acelove/p/86228.html
最新文章
CS小分队第一阶段冲刺站立会议(5月14日)
CS小分队第一阶段冲刺站立会议(5月13日)
CS小分队第一阶段冲刺站立会议(5月12日)
CS小分队第一阶段冲刺站立会议(5月11日)
“我爱淘”第二冲刺阶段Scrum站立会议8
“我爱淘”第二冲刺阶段Scrum站立会议7
“我爱淘”第二冲刺阶段Scrum站立会议6
“我爱淘”第二冲刺阶段Scrum站立会议5
“我爱淘”第二冲刺阶段Scrum站立会议4
“我爱淘”第二冲刺阶段Scrum站立会议3
热门文章
“我爱淘”第二冲刺阶段Scrum站立会议2
“我爱淘”第二冲刺阶段Scrum站立会议1
“我爱淘”冲刺阶段Scrum站立会议10
“我爱淘”冲刺阶段Scrum站立会议9
对软件功程课的改善建议
第二阶段冲刺阶段站立会议每天任务5
第二阶段冲刺阶段站立会议每天任务4
第二阶段冲刺阶段站立会议每天任务3
第二阶段冲刺阶段站立会议每天任务2
第二阶段冲刺阶段站立会议每天任务1
Copyright © 2011-2022 走看看