asp.net網站統計)

來源:互聯網
上載者:User
今天在 我在所的網站上加了一個簡單的網站統計:

滑鼠放上去可以這樣顯示:      這就是今天做的簡單的網站統計.

現在就來講講,是怎麼實現的.我用的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參數來代替,用法一模一樣.

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.