Go homepage(回首页)
Upload pictures (上传图片)
Write articles (发文字帖)

The author:(作者)qq
published in(发表于) 2014/7/9 1:40:19
在asp.net2.0页面部分缓存中实现缓存后替换文字内

在asp.net2.0页面部分缓存中实现缓存后替换文字内





实现缓存后替换



ASP.NET 2.0页面中既包含静态数据,又包含动态数据。静态数据不会发生变化,动态数据每时每刻都将会发生变化。因此,对静态数据实现数据缓存是非常必要的。ASP.NET 2.0提供了缓存后替换功能。实现该项功能的3种方法如下所示。



以声明方式使用Substitution控件。



以编程方式使用Substitution控件API。



以隐式方式使用AdRotator控件。



前两种方法主要通过Substitution控件实现。第3种方法通过AdRotator控件内置支持的缓存后替换功能。下面将对这3种方法进行详细地讲解。



1.Substitution控件应用



Substitution控件用于指定输出缓存的网页上不进行缓存的部分。



为提高应用程序性能,需要缓存整个ASP.NET 2.0页面。但是局部数据根据每个请求来更新页面上特定的部分(例如,需要动态更新页面上的时间或者即时新闻)。在这种情况下,可以使用Substitution控件。Substitution控件能够指定页面输出缓存中需要以动态内容替换该控件的部分。



Substitution控件的样式如图1所示,Substitution控件的属性如图2所示,其中Substitution控件的一个重要属性为MethodName属性。该属性用于获取或者设置当Substitution控件执行时为回调而调用的静态方法名称,并且该方法接受HttpContext类型的参数,返回值类型为String类型。







图1 Substitution控件







图2 Substitution控件的属性



示例



使用Substitution控件实现缓存后替换功能



页面主要包括Substitution、Label和Button控件。在Page_Load事件中设置Label控件显示日期与时间。自定义静态方法GetDateTime,GetDateTime方法参数为HttpContext类型,返回值为String类型,其返回内容为当前日期与时间。在代码顶部通过@ OutputCache指令设置页面输出缓存过期时间为5s。因此,Label控件所显示的日期与时间值来自于数据缓存。这个时间值不会随着刷新页面而变化,仅当数据过期时才会发生更新。Substitution控件的Method Name属性值为GetDateTime,用于显示GetDateTime方法的返回日期与时间值。虽然页面设置了输出缓存功能,但每当页面刷新时,Substitution控件的MethodName属性值执行GetDateTime方法,获取最新的日期与时间返回值,并且显示在页面上。



本示例演示的是,当程序运行时,将Web页面的输出缓存时间设置为5s,并且使用Substitution控件实现了缓存后替换功能,当刷新页面时,显示的都是最新时间,如图3所示。







图3 缓存后替换功能的实现



程序代码如下:



<%@ Page Language="C#" AutoEventWireup="True" CodeFile="Default.aspx.cs" Inherits="_Default" %>



<%@ OutputCache Duration="5" VaryByParam="None" %>















19_03



































使用Substitution控件实现缓存后替换















使用Substitution控件实现缓存后替换:



















If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)





QQ:154298438
QQ:417480759