[示例]如何使用控件缓存来缓存ASP.NET页面的一部分
作者:admin 时间:2023-4-28 15:53:40 浏览:要缓存ASP.NET网页不难,在 .aspx
文件开头直接使用 @OutputCache
便可实现。不过有时你并不需要缓存整张网页内容,而是只想缓存某一区块的内容,那该如何实现呢?其实是有方法可以做到的,那就是使用控件缓存。本文就给大家介绍如何使用控件缓存来缓存ASP.NET页面的一部分。
控制缓存
要设置用户控件缓存,你可以使用@OutputCache
指令以声明方式设置策略,或者通过在用户控件的代码中使用PartialCachingAttribute
类。
例如,如果你在用户控件文件(.ascx
文件)的顶部包含以下指令,则该控件的一个版本将在输出缓存中存储 120 秒。
<%@ OutputCache Duration="120" VaryByParam="None" %>
如果要在代码中设置缓存参数,可以在用户控件的类声明中使用属性。例如,如果您在类声明的元数据中包含以下属性,则输出缓存中的内容版本将存储 120 秒:
[PartialCaching(120)]
public partial class CachedControl : System.Web.UI.UserControl
{
// Class Code
}
有关在页面输出上设置的属性的更多信息,请参阅:
设置页面缓存和控件缓存时间
你可以为页面和页面上的用户控件设置不同的输出缓存持续时间值。
如果页面输出缓存持续时间小于用户控件的持续时间,则用户控件将被缓存直到其持续时间到期,即使在为请求重新生成页面的其余部分之后也是如此。例如,如果页面输出缓存设置为 50 秒,而用户控件的输出缓存设置为 100 秒,则页面其余部分每过期两次,用户控件就会过期一次。
下面的代码显示了一个页面的标记,该页面包含缓存持续时间比该页面长的用户控件。该页面配置为缓存 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); %>
下面的代码显示了页面中包含的用户控件。控件的缓存持续时间设置为 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); %>
总结
通过本文的介绍方法,我们就可以使用控件缓存来缓存ASP.NET页面的一部分了。
相关文章
标签: 缓存 asp.net aspx OutputCache
- 站长推荐