如何在asp.net中用c#做在线人数计数器
最好能有源代码,谢谢!!!!!!!!!!!还有就是有个问题啊,他提醒说有错误,说“System.Web.HttpApplicationState”并不包含“Unlock”...
最好能有源代码,谢谢!!!!!!!!!!!
还有就是有个问题啊,他提醒说有错误,说“System.Web.HttpApplicationState”并不包含“Unlock”的定义,这是怎么回事呢.谢谢各位解答了! 展开
还有就是有个问题啊,他提醒说有错误,说“System.Web.HttpApplicationState”并不包含“Unlock”的定义,这是怎么回事呢.谢谢各位解答了! 展开
3个回答
展开全部
一、用户显示页面的使用
首先,我们来看看怎样现实当前网站的访问用户数量,程序代码如下:
<%@ Page Language="c#" debug="true" %><html><head><SCRIPT LANGUAGE="c#" RUNAT="server">private void Page_Load(object sender, System.EventArgs e){ Visitors.Text = "本站当前有: <b>" + Application["user_sessions"].ToString() + "" + "</b> 位访问者 !";}<title>在线用户</title></head><body><asp:label id="visitors" runat="server" /><br></body></html>
二、global.asax文件实现
global.asax文件的作用我们自不必说,现在,我们直接来看统计当前在线用户数量如何实现:
<script language="c#" runat="Server">protected void Application_Start(Object sender, EventArgs e){Application["user_sessions"] = 0;}protected void Session_Start(Object sender, EventArgs e){Application.Lock();Application["user_sessions"] = (int)Application["user_sessions"] + 1;Application.Unlock();}protected void Session_End(Object sender, EventArgs e){Application.Lock();Application["user_sessions"] = (int)Application["user_sessions"] - 1;Application.Unlock();}</script>
以上代码很容易理解,当网站开始服务的时候(Application开始的时候),程序设置Application["user_sessions"]为零,然后,当用户进入网站(Session开始的时候)的时候,锁定Application,然后,将application("user_sessions")加一,用户退出网站的时候,application("user_sessions")减一。这样,就很巧妙的实现了在线用户的统计。
首先,我们来看看怎样现实当前网站的访问用户数量,程序代码如下:
<%@ Page Language="c#" debug="true" %><html><head><SCRIPT LANGUAGE="c#" RUNAT="server">private void Page_Load(object sender, System.EventArgs e){ Visitors.Text = "本站当前有: <b>" + Application["user_sessions"].ToString() + "" + "</b> 位访问者 !";}<title>在线用户</title></head><body><asp:label id="visitors" runat="server" /><br></body></html>
二、global.asax文件实现
global.asax文件的作用我们自不必说,现在,我们直接来看统计当前在线用户数量如何实现:
<script language="c#" runat="Server">protected void Application_Start(Object sender, EventArgs e){Application["user_sessions"] = 0;}protected void Session_Start(Object sender, EventArgs e){Application.Lock();Application["user_sessions"] = (int)Application["user_sessions"] + 1;Application.Unlock();}protected void Session_End(Object sender, EventArgs e){Application.Lock();Application["user_sessions"] = (int)Application["user_sessions"] - 1;Application.Unlock();}</script>
以上代码很容易理解,当网站开始服务的时候(Application开始的时候),程序设置Application["user_sessions"]为零,然后,当用户进入网站(Session开始的时候)的时候,锁定Application,然后,将application("user_sessions")加一,用户退出网站的时候,application("user_sessions")减一。这样,就很巧妙的实现了在线用户的统计。
展开全部
先添加一个“全局程序集文件_Global.asax”
void Application_Start(object sender, EventArgs e)
{
Application["count"] = 0;//初始化人数为0
}
void Session_Start(object sender, EventArgs e)
{
Session.Timeout = 1;//超时时间为1分钟
Application.Lock();
Application["count"] = (int)Application["count"] + 1;
Application.UnLock();
}
void Session_End(object sender, EventArgs e)
{
Application.Lock();
Application["count"] = (int)Application["count"] - 1;
Application.UnLock();
}
/// <summary>
/// 页面加载的代码
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Label1.Text = Application["count"].ToString() + "人";
}
}
ok~
void Application_Start(object sender, EventArgs e)
{
Application["count"] = 0;//初始化人数为0
}
void Session_Start(object sender, EventArgs e)
{
Session.Timeout = 1;//超时时间为1分钟
Application.Lock();
Application["count"] = (int)Application["count"] + 1;
Application.UnLock();
}
void Session_End(object sender, EventArgs e)
{
Application.Lock();
Application["count"] = (int)Application["count"] - 1;
Application.UnLock();
}
/// <summary>
/// 页面加载的代码
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Label1.Text = Application["count"].ToString() + "人";
}
}
ok~
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
建议使用静态变量来存储人数,
Application集合是弱类型的,会有装箱/拆箱的损耗,主要为了兼容ASP程序的,不推荐使用。
Application集合是弱类型的,会有装箱/拆箱的损耗,主要为了兼容ASP程序的,不推荐使用。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询