|
|
|
|
|
要緩存ASP.NET網(wǎng)頁不難,在 .aspx
文件開頭直接使用 @OutputCache
便可實現(xiàn)。不過有時你并不需要緩存整張網(wǎng)頁內(nèi)容,而是只想緩存某一區(qū)塊的內(nèi)容,那該如何實現(xiàn)呢?其實是有方法可以做到的,那就是使用控件緩存。本文就給大家介紹如何使用控件緩存來緩存ASP.NET頁面的一部分。
控制緩存
要設(shè)置用戶控件緩存,你可以使用@OutputCache
指令以聲明方式設(shè)置策略,或者通過在用戶控件的代碼中使用PartialCachingAttribute
類。
例如,如果你在用戶控件文件(.ascx
文件)的頂部包含以下指令,則該控件的一個版本將在輸出緩存中存儲 120 秒。
<%@ OutputCache Duration="120" VaryByParam="None" %>
如果要在代碼中設(shè)置緩存參數(shù),可以在用戶控件的類聲明中使用屬性。例如,如果您在類聲明的元數(shù)據(jù)中包含以下屬性,則輸出緩存中的內(nèi)容版本將存儲 120 秒:
[PartialCaching(120)]
public partial class CachedControl : System.Web.UI.UserControl
{
// Class Code
}
有關(guān)在頁面輸出上設(shè)置的屬性的更多信息,請參閱:
設(shè)置頁面緩存和控件緩存時間
你可以為頁面和頁面上的用戶控件設(shè)置不同的輸出緩存持續(xù)時間值。
如果頁面輸出緩存持續(xù)時間小于用戶控件的持續(xù)時間,則用戶控件將被緩存直到其持續(xù)時間到期,即使在為請求重新生成頁面的其余部分之后也是如此。例如,如果頁面輸出緩存設(shè)置為 50 秒,而用戶控件的輸出緩存設(shè)置為 100 秒,則頁面其余部分每過期兩次,用戶控件就會過期一次。
下面的代碼顯示了一個頁面的標(biāo)記,該頁面包含緩存持續(xù)時間比該頁面長的用戶控件。該頁面配置為緩存 50 秒。
<%@ Page language="C#" %>
<%@ Register tagprefix="SampleControl" tagname="Time" src="uc2.ascx" %>
<%@ OutputCache duration="50" varybyparam="none" %>
<SampleControl:Time runat="server" /><br /> <br /> <br />
This page was most recently generated at:<p>
<% string t = DateTime.Now.ToString();
Response.Write(t); %>
下面的代碼顯示了頁面中包含的用戶控件。控件的緩存持續(xù)時間設(shè)置為 100 秒。
<% @Control language="C#" %>
<% @OutputCache duration="100" varybyparam="none" %>
This user control was most recently generated at:<p>
<% string t = DateTime.Now.ToString();
Response.Write(t); %>
總結(jié)
通過本文的介紹方法,我們就可以使用控件緩存來緩存ASP.NET頁面的一部分了。
相關(guān)文章