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类就可以了。
查看全文
相关阅读:
android应用程序的混淆打包
在android market发布个人免费应用的步骤
Eclipse使用教程之精华篇
Android简单封装类似JQuery异步请求
android自动打包方法(ant+proguard+签名)
Android虚拟键盘弹出时挡住EditText解决方法
android绝对布局
Android访问php webservice
Android SDK中 tools 工具介绍
JSON 之JAVA 解析
原文地址:https://www.cnblogs.com/acelove/p/86228.html
最新文章
samba
linux rdsktop 运程管理 windows
kvm 网桥
清空mysql的历史记录
centos vsftp 服务器配置
htop 源码安装
mysql 源码安装
history 清空历史记录 或 history不记录历史命令
更改虚拟机的配置
微信小程序开发者工具集合包
热门文章
EmEditor Professional(文本编辑) 下载地址
Sails.js中文文档,Sails中文文档
sails 相关文章
WebStorm设置编辑器中的字体大小
sails不是内部或外部命令的解决方案
System.Web.Optimization找不到引用
利用Sails.js+MongoDB开发博客系统
RESTful API Design With NodeJS & Restify
RESTful API 设计指南
在eclipse中将android工程打包生成apk文件
Copyright © 2011-2022 走看看