2. 缓存的几种不同的实现方法?
1)缓存 ASP.NET 页
1以编程方式操作 HttpCachePolicy 类。
HttpCachePolicy.SetExpires
HttpCachePolicy.SetCacheability
|NoCache
|Private
|Public
|Server
|ServerAndNoCache
|ServerAndPrivate
2<%@
OutputCache Duration="60" VaryByParam="None" %>Duration 和 VaryByParam
属性是必需的。
2)缓存 ASP.NET
页的某些部分
不变的部分缓存起来,不必总是请求服务器
控件头部,则该控件的一个版本将在输出缓存中存储 120 秒。
<%@
OutputCache Duration="120" VaryByParam="None"
%>
或使用代码隐藏开发方法开发用户控件,则将以下属性包含在类声明的元数据中时,控件版本将在输出缓存中存储 120
秒。
[C#]
[PartialCaching(120)]
以上两法将仅缓存用户控件。
也可嵌套使用,在已缓存的页面或控件中缓存控件。
您可以在已为输出缓存指定的用户控件标记中声明
ID
属性,从而可以针对该用户控件的实例进行编程。但是,为了使代码正常工作,您必须显式验证该用户控件在输出缓存中存在。
!!可能的错误:
如果编写代码来操作一个包含
@ OutputCache 指令的用户控件,则将出现错误。
另外,如果页输出缓存设置为 100 秒,而用户控件输出缓存设置为 50
秒,则整个页将在输出缓存中存储 100
秒,而与用户控件较短的时间设置无关。
不过,如果页输出缓存存储持续时间比用户控件存储持续时间短,则将一直使用缓存用户输出控件,直到其存储时间到期为止,即使该页的其余部分已为某个请求重新生成。例如,如果页输出缓存设置为
50 秒,而用户控件输出缓存设置为 100
秒,则页的其余部分每到期两次,用户控件就到期一次。
3)缓存应用程序数据
允许您将需要大量的服务器资源来创建的对象存储在内存中。它是由
Cache 类实现的,实例是每个应用程序专用的,其生存期依赖于该应用程序的生存期。重新启动应用程序后,将重新创建 Cache 对象。