1、数据缓存
- 缓存是一种在计算机中广泛应用来提高性能的技术
- 在Web应用程序的上下文中,缓存用于在Http请求间保留页或者数据,并无在需新建的情况下多次使用它们
- 目的:节省程序处理时间和资源
2、缓存体系
3、页面输出缓存
页面输出缓存作为最简单的缓存形式,将已经生成的动/静态页面全部内容保存在服务器内存中,页面输出缓存适用于不需要频繁更新数据,而占用大量时间和资源才能编译生成的页面,对于经常更新的页面,则不适用。
设置输出缓存的两种方式:
- @OutputCache指令
- 页面输出缓存API——HttpCaahePolicy类
(1)@OutputCache指令
使用@OutputCahe指令对于输出缓存的各项设置,简单易行。
例:
<%@ OutputCache Duration="60" VarByParam="none"%>
对于OutputCahe指令Duration和VaryByParam两个属性是必须的。
(2)页面输出缓存API——HttpCaahePolicy类
这种使用变成来设置页面输出缓存的方法核心是调用System.Web.HttpCachePolicy。该类主要包含用于设置缓存特定的HTTP标头的方法和用于控制ASP.NET页面输出缓存的方法。
Response类的Cache属性用于获取页面缓存策略,该属性的数据类型是HttpCachePolicy。
4、页面部分缓存
页面部分缓存是指输出缓存页面的某些部分,而不是整个页面内容。实现页面部分缓存有两种机制:
- 控件缓存:将页面中需要缓存的部分至于用户控件(.ascx)文件中,并且为用户控件设置缓存功能
- 缓存后替换:该方法与控件缓存方法正好相反,将页面某一部分设为不缓存,当再次请求该页面时,将重新处理那些没有设 置为缓存的内容。
(1)控件缓存
控件缓存与页面输出缓存的@OutputCache指令的相同与不同之处
相同之处:
它们的设置方法基本相同,都是在文件顶部设置包含属性的@OutputCache指令字符串
不同之处:
- 控件缓存的@OutputCache指令设置在用户控制文件(.ascx)中,页面输出缓存的@OutputCache指令设置在普通页面(.ascx)中。
- 控件缓存的@OutputCache指令只能设置Duration,VaryByParam、VaryByControl、VaryByCustom、Shared和SqlDependency等6个属性,而页面输出缓存的@OutputCache指令则可以设置所有的属性。
(2)缓存后替换
Substitution控件
Substitution控件能够制定页面输出缓存中需要以动态内容替换该控件的部分,即允许对整个页面进行输出缓存,然后使用Substitution控件指定页中免于缓存的部分。
Substitution控件需要设置一个重要属性MethodName,该属性用于获取或者设置当Substitution控件执行时为回调而调用的方法名称。该方法必须要符合三点:
该方法必须被定义为静态方法。
该方法必须接受HttpContext类型的参数。
该方法必须返回String类型的值