TOC

This article is currently in the process of being translated into Vietnamese (~86% done).

Caching:

OutputCache

Trong chương này, chúng ta sẽ xem OutputCache là loại caching dễ nhất trong ASP.NET. Như bạn thấy trong ví dụ của chúng ta, nó không cần nhiều code - chỉ một vài thay đổi nhỏ trong page và bạn có thể dễ dàng thực hiện. Trong chương tiếp theo, chúng ta sẽ xem vài cách khác để dùng OutputCache.

Đây là một ví dụ rất đơn giản về page cho chúng ta thấy sự khác biệt giữa page có cache và page không cache. Thử tạo ra một project và thay đổi trang Default.aspx:

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Caching</title>
</head>
<body>
    <form id="form1" runat="server">
        <%= DateTime.Now.ToString() %>
    </form>
</body>
</html>

Đây là trang chuẩn, ngoại trừ dòng DataTime. Nó chỉ đơn giản là đầu ra của ngày hiện tại và thời gian của trang. Thử chạy project và tải lại trang vài lần. Như bạn thấy thời gian sẽ được thay đổi mỗi lần tải lại. Bây giờ, bạn thêm dòng sau đây vào dòng số 2:

<%@ OutputCache duration="10" varybyparam="None" %>

Chạy lại project và tải lại trang một vài lần. Như bạn thấy, thời gian chỉ tải lại mỗi 10 giây. Thêm caching vào trang đơn giản như vậy! Bây giờ, tham số khoản thời gian là rõ ràng - nó cho page biết khoảng thời gian để cache nội dung. Mỗi khi page được tải thì ASP.NET sẽ kiểm tra liệu trang có được cache hay không, và neeys có thì liệu nó có hết không. Nó là đặc điểm của cache nếu nó chưa hết - nếu hết thì page sẽ được bỏ ra khỏi cache và page được tải lại rồi lại đặt trong cache.

Tham số varybyparam là một tham số của OutputCache. Nó xác định một danh sách các tham số mà cache nên thay đổi theo. Ví dụ, nếu bạn thiết lập tham số "p" thì cache sẽ phụ thuộc vào giá trị của tham số p. Thử thay đổi ví dụ của chúng ta như sau:

<%@ Page Language="C#" AutoEventWireup="true"  CodeFile="Default.aspx.cs" Inherits="_Default" %>
<%@ OutputCache duration="10" varybyparam="p" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Caching</title>
</head>
<body>
    <form id="form1" runat="server">
        <%= DateTime.Now.ToString() %><br />
        <a href="?p=1">1</a><br />
        <a href="?p=2">2</a><br />
        <a href="?p=3">3</a><br />
    </form>
</body>
</html>

Now, run our example again, and try clicking the links. They each now have their own timestamp, based on when you first accessed the page. The cache is depending on the value of the p parameter! You can specify multiple parameters by seperating them with a semicolon.


This article has been fully translated into the following languages: Is your preferred language not on the list? Click here to help us translate this article into your language!