XML+Application来编写计数器(二)

2)当前在线人数计数器


判断当前有几个人在您的站点,这个计数器比较简单,这里要用到Application变量和session的2个方法Application变量起着增加,减少人数的作用。
在global.asax文件里面输入以下代码:
<script language="c#" runat="Server">
protected void Application_Start(Object sender, EventArgs e)
{
Application["user_sessions"] = 0;//声明一个application变量来做计数器
}
protected void Session_Start(Object sender, EventArgs e)
{
Application.Lock();//先锁定应用程序,这里大家都明白
Application["user_sessions"] = (int)Application["user_sessions"] + 1;
//当session_start方法启动时判断当前有几个人在线,然后赋值到Application["user_sessions"]变量.(int)强制转换类型,卸箱,装箱!
Application.Unlock();
}
protected void Session_End(Object sender, EventArgs e)
{
Application.Lock();
Application["user_sessions"] = (int)Application["user_sessions"] - 1;
//当用户离开站点的时候,减1 卸箱,装箱! Object=int
Application.Unlock();
}
都要写在Session_OnStart,和Session_OnEnd方法里面.
</script>
设置label控件把值读出.


3)最大在线人数统计


这个就很简单了,这里用application变量配合xml来完成,
global.asax
Application.Lock();//锁定应用程序
DataSet objDataSet=new DataSet()
objDataSet.ReadXml(Server.MapPath("database/count.xml"));//读xml文件
if(Convert.ToInt64(objDataSet.Tables["MyCount"].Rows[0]["MaxCount"])<(int)Application["user_sessions"])//如果MaxCount标签里面的值小于当前在线人数的值,就存入,不小于则什么都不做。
objDataSet.Tables["MyCount"].Rows[0]["MaxCount"]=(int)Application["user_sessions"];
objDataSet.WriteXml(Server.MapPath("database/count.xml"));
Application.UnLock();


4)统计今日在线人数计数器


这里要用到日期时间变量和2application变量,声名Application["datetTime"],和Application["day_count"]变量
global。Asax文件
Application["dateTime"]=0;//先给赋为0
Application["day_count]=0;//今日访问统计变量,初始值为0
Application.Lock();
if(DateTime.Now.Day==Convert.ToInt32(Application["dateTime"]))
//如果系统日期(天数,服务器上的) 等于Application["dateTime"]里面的值,则Application["day_count"]变量累加1.
{
Application["day_count"]=(int)Application["day_count"]+1;
}
else//如果不等于则把Application["day_count"]变量赋为1,Application["datetime"]赋为当天,依次类推
{
Application["datetime"]=DateTime.Now.Day;
Application["day_count"]=1;
}

Application.UnLock();


总结
-----------------------------------------------------------------------------------
网站总共访问人数计数器也可以设置成每ip,,代码自己写了 :)还有最好把代码放在首页,这样统计还比较现实,因为一个新的浏览者80%不可能从别的页面来访问您的站点。


统计最大在线人数计数器为什么要存入xml文件呢?存入application变量不行吗?很简单:如果服务器断电了那岂不是白存了?


当然这些计数器都不是很准确,但是能大体表现一个网站的流量了
posted @ 2005-04-16 14:03  冰戈  阅读(1143)  评论(0编辑  收藏  举报