目录
使用PartialCachingAttribute类设置用户控件缓存功能
前言:
这篇文章,主要讲述ASP.NET相关知识,主要有ASP.NET缓存,页面缓存。部分缓存和数据缓存。
ASP.NET 缓存概述
缓存是ASP.NET中非常重要的一个特性,可以生成高性能的Web应用程序。生成高性能的Web应用程序最重要的因素之一,就是将那些频繁访问而且不需要经常更新的数据存储在内存中,当客户端再一次访问这些数据时,可以避免重复获取满足先前请求的信息,快速显示请求的Web页面。
ASP.NET中有3种Web应用程序可以使用缓存技术,即页面输出缓存、页面部分缓存和页面数据缓存。ASP.NET的缓存功能具有以下优点:
增强可管理性。使用ASP.NET提供的配置和管理功能,可以更加轻松地管理缓存。提供更高的性能和可伸缩性。ASP.NET提供了一些新的功能,如SQL数据缓存依赖等,这些功能将帮助开发人员创建高性能、伸缩性强的Web应用程序。
页面缓存概述
页面输出缓存是最为简单的缓存机制,该机制将整个ASP.NET页面内容保存在服务器内存中。当用户请求该页面时,系统从内存中输出相关数据,直到缓存数据过期。
在这个过程中,缓存内容直接发送给用户,而不必再次经过页面处理生命周期。通常情况下,页面输出缓存对于那些包含不需要经常修改内容,但需要大量处理才能编译完成的页面特别有用。另外,页面输出缓存是将页面全部内容都保存在内存中,并用于完成客户端请求。
页面输出缓存需要利用有效期来对缓存区中的页面进行管理。设置缓存的有效期可以使用@OutputCache指令。@OutputCache指令的格式如下:
<%@ OutputCache Duration="#ofseconds"
Location="Any | Client | Downstream | Server | None | ServerAndClient "
Shared="True | False"
VaryByControl="controlname"
VaryByCustom="browser | customstring"
VaryByHeader="headers"
VaryByParam="parametername" %>
页面部分缓存
页面部分缓存是将页面部分内容保存在内存中以便响应用户请求,而页面其他部分内容则为动态内容。
页面部分缓存的实现包括控件缓存和缓存后替换两种方式。前者也可称为片段缓存,这种方式允许将需要缓存的信息包含在一个用户控件内,然后将该用户控件标记为可缓存的,以此来缓存页面输出的部分内容。例如,要开发一个股票交易的网页,每支股票价格是实时变动的,因此,整个页面必须是动态生成且不能缓存的,但其中有一小块用于放置过去一周的趋势图或成交量,它存储的是历史数据,这些数据早已是固定的事实,或者需要很长一段时间后才重新统计变动,将这部分缓存下来有很高的效益,可以不必为相同的内容做重复计算从而浪费时间,这时就可以使用控件缓存。缓存后替换与用户控件缓存正好相反。这种方式缓存整个页,但页中的各段可以是动态的。
使用@OutputCache指令设置用户控件缓存功能
@OutputCache指令以声明方式为用户控件设置缓存功能,用户控件缓存与页面输出缓存的@OutputCache指令设置方法基本相同,都在文件顶部设置@OutputCache指令,不同点包括如下两方面:
用户控件中的@OutputCache指令设置源代码如下:
<%@ OutputCache Duration="60" VaryByParam="none" VaryByControl="ControlID" %>
使用PartialCachingAttribute类设置用户控件缓存功能
使用PartialCachingAttribute类可以在用户控件(.ascx 文件)中设置有关控件缓存的配置内容。PartialCachingAttribute类包含6个常用属性和4种类构造函数,其中6个常用属性是Duration、Shared、SqlDependency、VaryByControl、VaryByCustom和VaryByParam,这里重点介绍PartialCachingAttribute类中的构造函数。PartialCachingAttribute类中的4种构造函数及其说明如表所示。
使用ControlCachePolicy类
ControlCachePolicy是.NET Framework中的类,主要用于提供对用户控件的输出缓存设置的编程访问。ControlCachePolicy类包含6个属性,分别是Cached、Dependency、Duration、SupportsCaching、VaryByControl和VaryByParams,如表所示。
页面数据缓存概述
页面数据缓存即应用程序数据缓存,它提供了一种编程方式,可通过键/值将任意数据存储在内存中。
使用应用程序缓存与使用应用程序状态类似,但是与应用程序状态不同的是,应用程序数据缓存中的数据是容易丢失的,即数据并不是在整个应用程序生命周期中都存储在内存中的。应用程序数据缓存的优点是由ASP.NET管理缓存,它会在项过期、无效或内存不足时移除缓存中的项,还可以配置应用程序缓存,以便在移除项时通知应用程序。
ASP.NET中提供了类似于Session的缓存机制,即页面数据缓存。利用数据缓存,可以在内存中存储各种与应用程序相关的对象。对于各个应用程序来说,数据缓存只是在应用程序内共享,并不能在应用程序间进行共享。Cache类用于实现Web应用程序的缓存,在Cache中存储数据的最简单方法如下:
Cache["Key"]=Value;
从缓存中取数据时,需要先判断一下缓存中是否有内容,方法如下:
Value=(string)Cache["key"];
If(Value!=null)
{
//do something
}
Cache类有两个很重要的方法,即Add和Insert方法,其语法格式如下:
public Object Add[Insert] (string key,Object value,CacheDependency dependencies,
DateTime absoluteExpiration,TimeSpan slidingExpiration,CacheItemPriority priority,
CacheItemRemovedCallback onRemoveCallback)
key:用于引用该项的缓存键。