2011-09-23 48 views

回答

1

只需創建一個計數器和一個持久性方式來保存值。這可以是文件或數據庫。

下面的代碼是對學習提出,你應該爲它的更高效利用這個現有的服務,你會不會有問題,如果到許多命中在同一時間發生

創建例如一個新的類:

public static class PageHitCounter 
{ 
    private String fileTemplate = "dailyHits_{0:yyyyMMdd}.txt"; 
    private DateTime now = DateTime.Now; 

    public static void Add() 
    { 
    // we'll create one file per day 
    // lets append a new user hit to a file 
    TextWriter tw = new StreamWriter(getFilename(now), true); 
    // let's write the date and something else, f.ex. the browser info 
    tw.WriteLine(String.Format("{0:dd-MM-yyyy};{1}", 
           now, 
           Request.ServerVariables["HTTP_USER_AGENT"]); 
    // close the file 
    tw.Close(); 
    } 

    public static int Count(DateTime day) 
    { 
    int hits = 0; 
    // let's open the file and count how many lines, 
    // as we are adding one line per hit 
    using (var reader = File.OpenText(getFilename(day))) 
     while (reader.ReadLine() != null) 
     hits++; 
    return hits; 
    } 

    private string getFilename(Datetime day) 
    { 
    return Server.MapPath("~/App_Data/" + String.Format(fileTemplate, day)); 
    } 
} 
在代碼

Page_Load(...) { 

    PageHitCounter.Add(); 

} 

,當你想看看有多少點擊,您可以使用

PageHitCounter.Count(DateTime.Now); 

如果你有很多的網頁,並且不希望這樣做的每一個,並假設你的項目的WebForms,您可以創建一個MasterPage並將此Add()追加到MasterPage OnLoad事件中,或者您可以創建自己的頁面並實現代碼。


作爲一個選項給你真正的問題,您可以使用Woopra service現場結果,我在一些論壇上使用,這是相當可愛的看到所有的用戶,你只需要創建一個帳戶,並使用他們的JavaScript代碼在所有頁腳中(通常我們使用母版頁並只追加一個文件)

+0

非常感謝它的工作很好。 – user735627

1

您可以創建一個google analytics account並放置的JavaScript在您的網站統計點擊次數在我們的網站一天。那麼谷歌分析將爲你做

+0

那不是C#! :P – balexandre

+0

不,但您可以通過使用谷歌分析及其免費/簡單/簡單得到更多! – Kimtho6

+0

谷歌不會在48小時後給你直播結果! – balexandre

0

你的網頁必須有一個嵌入式代碼來計算點擊次數。直接你不能訪問這個信息。

0

這是爲您的網站,或者這是一個類的任務?

有很多現有工具可以爲您提供大量關於點擊次數,訪問者類型,關於他們行爲的各種度量標準等的信息......它更實用,但不在C#中。

如果這是一個班級作業 - 您可以在您的網站上增加一個計數器並將其保存到文件系統或數據庫中。

下面是一個CodePlex示例,您可以查看和修改它來每天跟蹤點擊次數。
http://www.codeproject.com/KB/custom-controls/EasyHit.aspx