弗尤博客(九)
今天完成,阅读数量的统计。
ASP.NET中利用Application和Session统计在线人数、历史访问量
学习一位大牛的文章
protected void Application_Start()
{
BlogsBusiness blogs = new BlogsBusiness();
BlogsEntity b = new BlogsEntity();
b.Bid = Convert.ToInt32(Request.QueryString["bid"]);
int i = 0;
i = blogs.SelectReadNums(b);
Application["total"] = i; //定义Application变量值total并赋值为历史访问量
Application["onLine"] = 0;
}
protected void Session_Start()
{
Application.Lock(); //锁定Application
Application["total"] = (int)Application["total"] + 1; //总访问量加1
Application["onLine"] = (int)Application["onLine"] + 1; //在线人数加1
Application.UnLock(); //解除锁定
}
protected void Session_End()
{
Application.Lock(); //锁定Application
Application["onLine"] = (int)Application["onLine"] - 1; //总访问数量不变,在线人数减1
Application.UnLock(); //解除锁定
}
protected void Application_End()
{
BlogsBusiness blogs = new BlogsBusiness();
BlogsEntity b = new BlogsEntity();
b.Bid = Convert.ToInt32(Request.QueryString["bid"]);
b.Readnums = (int)Application["total"];
int r = 0;
r = blogs.UpdateReadNums(b);
}
首先是从数据库中获取当前阅读数量(我默认的是0)这样每次都可以读出最后一次的阅读量。session每次访问application都➕1,还是通过QueryString记录是哪文章,最后修改数据库实现更新数据库,目前有个问题,a用户进入到该篇博文后,无法看到此时自己也算是访问该篇博文,初步思路是进入先➕1,关闭➖1;