ASP.NET 实现统计在线人数
2009-04-16 09:38
609 查看
在网上查了很多资料,有说到用iframe定时刷新来实现,我试着做了一个,感觉还不错。
1、首先需要在页面中添加<iframe style="display:none" id="ifr" src="User/Refresh.aspx"></iframe>使其隐藏,
Refresh.aspx负责往数据库中添加新用户并每3秒刷新一次来改变登入用户的最后时间。
在Refresh.aspx页面中添加
<script type="text/javascript">
setInterval('location.reload()',3000);
</script>
使页面每3秒刷新一次。
在Refresh.aspx.cs page_load函数中
string s = "-1";//-1为游客
if (this.Session["onlineid"] == null)//当用户刚登录时
{
string str = "insert into Map_online(userid) values("+s+"); select IDENT_CURRENT('Map_online')";
this.Session["onlineid"] = ExecuteSql(str);//执行sql语句并返回id
}
else//当刷新页面时
{
string strSql = "update Map_online set lastdate='" + DateTime.Now + "' where id=" + this.Session["onlineid"];//每3秒改一次最后登入时间
ExecuteSql(strSql);
}
2、登入的用户最后登入时间是不断的在刷新并与当前时间区别不大,当用户离开页面后最后登入时间停止刷新
所以用另一页面删除离开页面的用户。
同样在页面中添加<iframe style="display:none" src="User/RefData.aspx"></iframe>使其隐藏,
在RefData.aspx中添加
<script type="text/javascript">
setInterval('location.reload()',120000);
</script>
每两分钟清理一次数据库
在RefData.aspx.cs中
protected void Page_Load(object sender, EventArgs e)
{
string strSql = "select * from Map_online";
SqlDataReader sdr = ExecuteDataTable(strSql);
while (sdr.Read())
{
int i = DateTime.Now.CompareTo(Convert.ToDateTime(sdr["lastdate"].ToString()).AddSeconds(10));
if (i > 0)//数据未能及时更新
{
strSql = "delete from Map_online where id=" + sdr["id"].ToString();
ExecuteSql(strSql);
}
}
}
1、首先需要在页面中添加<iframe style="display:none" id="ifr" src="User/Refresh.aspx"></iframe>使其隐藏,
Refresh.aspx负责往数据库中添加新用户并每3秒刷新一次来改变登入用户的最后时间。
在Refresh.aspx页面中添加
<script type="text/javascript">
setInterval('location.reload()',3000);
</script>
使页面每3秒刷新一次。
在Refresh.aspx.cs page_load函数中
string s = "-1";//-1为游客
if (this.Session["onlineid"] == null)//当用户刚登录时
{
string str = "insert into Map_online(userid) values("+s+"); select IDENT_CURRENT('Map_online')";
this.Session["onlineid"] = ExecuteSql(str);//执行sql语句并返回id
}
else//当刷新页面时
{
string strSql = "update Map_online set lastdate='" + DateTime.Now + "' where id=" + this.Session["onlineid"];//每3秒改一次最后登入时间
ExecuteSql(strSql);
}
2、登入的用户最后登入时间是不断的在刷新并与当前时间区别不大,当用户离开页面后最后登入时间停止刷新
所以用另一页面删除离开页面的用户。
同样在页面中添加<iframe style="display:none" src="User/RefData.aspx"></iframe>使其隐藏,
在RefData.aspx中添加
<script type="text/javascript">
setInterval('location.reload()',120000);
</script>
每两分钟清理一次数据库
在RefData.aspx.cs中
protected void Page_Load(object sender, EventArgs e)
{
string strSql = "select * from Map_online";
SqlDataReader sdr = ExecuteDataTable(strSql);
while (sdr.Read())
{
int i = DateTime.Now.CompareTo(Convert.ToDateTime(sdr["lastdate"].ToString()).AddSeconds(10));
if (i > 0)//数据未能及时更新
{
strSql = "delete from Map_online where id=" + sdr["id"].ToString();
ExecuteSql(strSql);
}
}
}
相关文章推荐
- Asp.Net实现在线人数统计
- 使用ASP.NET的Application对象实现在线人数统计的功能
- Asp.Net实现在线人数统计 (转)
- asp.net 实现在线人数统计
- VS2005下实现asp.net在线人数的统计
- ASP.NET中使用Application对象实现简单在线人数统计功能
- ASP.NET中使用Application对象实现简单在线人数统计功能
- asp.net MVC 统计在线人数功能实现
- VS2005下实现asp.net在线人数的统计
- VS2005下实现asp.net在线人数的统计
- Asp.net实现在线人数统计功能代码实例
- ASP.net 实现在线统计人数
- Asp.Net实现在线人数统计
- ASP.net 实现在线统计人数
- ASP.net 实现在线统计人数
- 【转】ASP.NET实现在线人数的统计(C#)
- Asp.net实现在线人数统计功能代码实例
- 用ASP.NET实现在线用户统计
- asp.net 在线人数统计,页面访问量 Application ,session
- ASP.NET实现记录历史访问人数和当前在线人数