Thursday , 12 December 2024
HOT

Thống kê truy cập website trong asp.net sử dụng Global.asax

Bạn cần thống kê theo dõi xem có bao nhiêu khách đang truy cập website và đã có bao nhiêu lượt truy cập website của bạn. Mình sẽ hướng dẫn bạn làm việc đó.

Trước tiên mình nói qua về Chu kỳ sống của trang web trong ASP.NET (ASP.NET Page Life Cycle)

Chu kỳ sống được bắt đầu khi trình duyệt yêu cầu một trang web gọi là Session.
Chu kỳ sống vẫn tiếp tục nếu:
– Session đang hoạt động.
– Người sử dụng tương tác với giao diện web cho đến khi kích hoạt một sự kiện.
– Dữ liệu của trang (View State) wed được gửi về cho Server.
– Server nhận được View State và trả lại yêu cầu từ View State.
Chu kỳ sống kết thúc khi:
– Người dùng kết thúc trình duyệt.
– Session kết thúc (timeout).

Mỗi khi người dùng duyệt web của mình sẽ có các sự kiện ứng dụng sau:
Application_Start: Người dùng đầu tiên duyệt trang web.
Application_End: Khi không còn người dùng nào duyệt trang web.
Application_Error: Khi có lỗi xảy ra trong ứng dụng
Session_Start: Khi người dùng duyệt một trang web
Session_End: Khi người dùng đóng trình duyệt hoặc Session kết thúc (time out)

Các sự kiện ứng dụng này được “khởi tạo” trong Global.asax, Bạn hãy tạo file Global.asax trong thư mục webroot của bạn và nhập nội dung file như sau:

<%@ Application Language=”C#” %>
<%@ Import Namespace=”System.IO” %>
<script runat=”server”>
    void Application_Start(object sender, EventArgs e) 
    {
        //Kiểm tra nếu chưa tồn tại file thì tạo file Count_Visited.txt
        if (!File.Exists(Server.MapPath(“Count_Visited.txt”)))
            File.WriteAllText(Server.MapPath(“Count_Visited.txt”), “0”);
        Application[“DaTruyCap”] = int.Parse(File.ReadAllText(Server.MapPath(“Count_Visited.txt”)));
    }
    void
Application_End(object sender, EventArgs e) 
    {

    }

    void Application_Error(object sender, EventArgs e)
    {

    }

    void Session_Start(object sender, EventArgs e) 
    {
        // Tăng số đang truy cập lên 1 nếu có khách truy cập
        if (Application[“DangTruyCap”] == null)
            Application[“DangTruyCap”] = 1;
        else
            Application[“DangTruyCap”] = (int)Application[“DangTruyCap”] + 1;
        // Tăng số đã truy cập lên 1 nếu có khách truy cập
        Application[“DaTruyCap”] = (int)Application[“DaTruyCap”] + 1;
        File.WriteAllText(Server.MapPath(“Count_Visited.txt”), Application[“DaTruyCap”].ToString());
    }  

    void Session_End(object sender, EventArgs e) 
    {
        //Khi hết session hoặc người dùng thoát khỏi website thì giảm số người đang truy cập đi 1
        Application[“DangTruyCap”] = (int)Application[“DangTruyCap”] – 1;
    }        

</script>

Để hiển thị thống kê bạn chỉ cần gán giá trị như sau
Đã truy cập := Application[“DaTruyCap”].ToString();

Đang truy cập := Application[“DangTruyCap”].ToString();

Lưu ý: Khi triển khai trên webserver, file Count_Visited.txt cần được cấp quyền ghi

Chúc bạn thành công

Nguồn: h m c l i p . n e t

Leave a Reply

Your email address will not be published. Required fields are marked *

*