技术频道导航
HTML/CSS
.NET技术
IIS技术
PHP技术
Js/JQuery
Photoshop
Fireworks
服务器技术
操作系统
网站运营

赞助商

分类目录

赞助商

最新文章

搜索

[示例]如何使用控件缓存来缓存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  
x
  • 站长推荐
/* 左侧显示文章内容目录 */