今天在 我在所的網站上加了一個簡單的網站統計:
滑鼠放上去可以這樣顯示: 這就是今天做的簡單的網站統計.
現在就來講講,是怎麼實現的.我用的asp.net 2003 版本.
文章總數,檔案總數就是讀取資料庫的操作,在這裡就不說了.
對與總訪問量,我是將這個參數存在count.xml檔案裡面,通過讀取這個檔案修改獲得,線上訪問量我通過Global裡面Application設定參數來實現.
count.xml代碼如下(簡單):
<?xml version="1.0" standalone="yes"?>
<MyCount>
<TotalCount>7</TotalCount>
</MyCount>
Global裡面的關鍵代碼如下:
protected void Application_Start(Object sender, EventArgs e)
...{
DataSet objDataSet = new DataSet();
objDataSet.ReadXml(Server.MapPath("count.xml"));
int maxCount = Convert.ToInt32(objDataSet.Tables["MyCount"].Rows[0]["TotalCount"]);
Application["TotalCount"] = maxCount;
Application["OnlineCount"] = 0;
}
protected void Session_Start(Object sender, EventArgs e)
...{
Application.Lock();
Application["OnlineCount"] = (int)Application["OnlineCount"] + 1;
//訪問總數加1
int count = 0;
count = (int)Application["TotalCount"];
count = count + 1;
Application["TotalCount"] = count;
//將資料記錄寫入檔案
DataSet objDataSet = new DataSet();
objDataSet.ReadXml(Server.MapPath("count.xml"));
objDataSet.Tables["MyCount"].Rows[0]["TotalCount"] = (int)Application["TotalCount"];
objDataSet.WriteXml(Server.MapPath("count.xml"));
Application.UnLock();
}
protected void Session_End(Object sender, EventArgs e)
...{
Application.Lock();
Application["OnlineCount"] = (int)Application["OnlineCount"] - 1;
Application.UnLock();
}
protected void Application_End(Object sender, EventArgs e)
...{
int count = 0;
count = (int)Application["TotalCount"];
DataSet objDataSet = new DataSet();
objDataSet.ReadXml(Server.MapPath("count.xml"));
objDataSet.Tables["MyCount"].Rows[0]["TotalCount"] = (int)Application["TotalCount"];
objDataSet.WriteXml(Server.MapPath("count.xml"));
}
在顯示部分代碼,我寫在使用者控制項裡面,這樣可重用性高,代碼如下:
<a class="" href='#' Title='文章總數:<%=ArticleCount%>
檔案總數:<%=FileCount%>
總訪問量:<%=TotalCount%>
線上訪問量:<%=OnlineCount%>'>
網站統計</a>
.cs代碼
private void Page_Load(object sender, System.EventArgs e)
...{
// 在此處放置使用者代碼以初始化頁面
if (!Page.IsPostBack)
...{
if (Application["OnlineCount"] != null)
...{
//擷取當前線上人數
OnlineCount = Application["OnlineCount"].ToString();
}
if (Application["TotalCount"] != null)
...{
//擷取網站總訪問人數
TotalCount = Application["TotalCount"].ToString();
}
this.ArticleCount = bll_article.CountArticle("1").ToString();
this.FileCount = bll_file.CountFile("1").ToString();
}
}
當然,這是一個很簡單的統計,如果需要統計本周或者本月訪問情況,自然還可以在count.xml裡面添加一些參數,繼續操作.
說明一點,Application參數也可以用Session參數來代替,用法一模一樣.