« 上一篇下一篇 »

页输出缓存

 输出缓存是一种功能强大的技术应用程序可以将那些频繁访问的数据以及那些需要大量处理时间来创建的数据存储在内存中,通过缓存从动态页生成的内容来提高请求/响应的吞吐量。默认情况下启动输出缓存,但不缓存来自任何给定响应的输出,除非采取显式操作使该响应成为可缓存的。

    为了使响应被适当的输出缓存,响应必须具有至少一个有效的过期/有效性策略和公用cache的访问权限。当一个GET请求被送往页面,一个输出缓冲入口将被创建。随后的GET请求和HEAD的请求将直接从该缓冲入口中取出返回给用户,直到该缓存请求过期,而对该页面的POST请求通常是显示地产生动态内容,却并非如同GET和HEAD请求一样从缓冲入口中取出。

    输出缓冲还支持带请求串的GET方法,把请求串作为页面识别的一部分。这就意味着带有相同键值但排列次序不同的请求串的GET请求,可能导致缓存中人为i不存在该输出页面。

    输出缓存需要知道页面缓存的过期/有效时间策略。如果一个页面在输出缓存中,而且又被指定为60分钟的页面过期时间,那么从它进入输出缓存开始,60分钟后该页面将从输出缓存中被清除。如果恰在此时,有一个对该页面的请求到达,页面的代码将被执行,页面输出又将重新进入输出缓冲。这种方式的过期策略称之为“强制过期”,页面只在一定时间内有效。

    下面的指令在响应时激活输出缓存,并显示的指定页面在输出缓冲中的保存时间:

    <% @ OutputCache Duration="秒数"Location="Any∣Client∣Down-stream∣Servera∣None"VaryByParam="none∣*∣parametername"%>

    其中:

    1)Duration是必要的属性,表示页面应该被缓存的时间,以秒为单位,并且该数据必须是正整数。

    2)Location是指定输出缓存的位置,该参数是可选参数,如果要指定该参数,则必须是下列选项之一:Any、client、downstream、none、server或serverandclient,如果选择none,则表示禁用缓存。

    3)VaryByParam是必须属性,Request中变量的名称,这些变量名应该产生单独的缓存条目。“none”表示没有变动,“*”可用于为每个不同的变量数组创建新的缓存条目,变量之间用“;”进行分割。

« 上一篇下一篇 »