TOC

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

Caching:

OutputCache - more examples

Trong chương trước, chúng ta đã xem cách dùng OutputCache để cache page rất đơn giản. Trong chương này, chúng ta cùng xem các cách khác dùng OutputCache. Chúng ta dùng varybyparam trong ví dụ trước nhưng bạn có thể thay đổi cache theo các yếu tố khác. Đây là một danh sách tóm tắt và một vài ví dụ.

OutputCache - varybyparam

Please see the previous chapter for more information on the varybyparam parameter.

OutputCache - varybycontrol

Tham số varybycontrol làm chính xác như tên của nó - nó thay đổi cache dựa trên giá trị của control được chỉ định. Ví dụ, bạn có thể có một dropdownlist với một tập các lựa chọn và dựa trên nội dung của trang theo item được lựa chọn. Trong trường hợp này, nó logic để thay đổi theo giá trị của control vì nội dung của trang thay đổi dựa trên đó. Đây là ví dụ dùng varybycontrol:

<%@ OutputCache duration="10" varybyparam="none" varybycontrol="NameOfControl" %>

OutputCache - varybycustom

This is probably the least easy way of using the OutputCache system, but on the other hand, probably the most flexible. It allows you to handle the variations your self, by setting a custom string, which ASP.NET will vary the output by. To test this, you need to add a global.asax file to your project, if you don't already have one. Right click on your project in the Solution Explorer, and select Add new item. Now select the "Global Application Class" and click Ok. In the Global.asax file, you need to override the GetVaryByCustomString like this:

public override string GetVaryByCustomString(HttpContext context, string custom)
{
    if(custom == "Browser")
    {
        return context.Request.Browser.Browser;
    }
    return String.Empty;
}

In this case, our caching will be varied based on which browser the user accesses the page with. The markup part should be written like this:

<%@ OutputCache duration="120" varybyparam="None" varybycustom="Browser" %>

Try accessing the page from different browsers. You will see that the output now depends on which browser you use. The Browser object comes with a bunch of useful information about the client browser - for instance you could vary by whether or not the browser supports CSS, JavaScript or something else.

OutputCache - varybyheader

This one allows you to vary the content based on one or more of the headers that browser send. Here is an example:

<%@ OutputCache duration="120" varybyparam="None" varybyheader="Accept-Language" %>

This will vary cache based on the Accept-Language header, which tells the server which languages the user accepts and prefers.


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!