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类就可以了。
查看全文
相关阅读:
3D引擎为什么使用三角形绘制曲面
用SublimeText当Unity Shader的编辑器
Lua模块的加载与内存释放
wriesharek同时监听多个端口
Unity的Input输入
Unity项目中文字的统一管理
Unity中的定时器与延时器
Unity插件扩展中组件常用的几个方法
u3d不显示阴影的处理方法
使用ScriptableObject创建.asset文件
原文地址:https://www.cnblogs.com/acelove/p/86228.html
最新文章
国际化之iPhone设备支持的语种
国际化之货币符号显示
国际化语种名称的标识
Lua游戏开发之时区问题
Unity 5.4版本 Application.systemLanguage 失效
Unity Inspector面板常用的属性
Sublime Text 显示韩文和文件编码
iOS链接库的冲突
gitbook build 报错
Node.js文件编码格式的转换
热门文章
Mac下的Jenkins安装
近期 Unity 提交苹果审核被拒的问题
对Unity的Resources目录进行改名
C# StreamReader.ReadLine统计行数的问题
C#保存文件为无BOM的utf8格式
Visual Studio 2015编译Lua 5.3.4遇到的坑
lua的性能优化
旋转矩阵(Rotation Matrix)的推导及其应用
Shader、Draw Call和渲染管线(Rendering Pipeline)
《Unity3D 实战核心技术详解》书中关于矩阵的错误
Copyright © 2011-2022 走看看