zoukankan      html  css  js  c++  java
  • ASP.NET 页面缓存 [转]

    ASP.NET 页面缓存 [转]

    在ASP.NET 中有两种WEB缓存技术,一种是输出缓存,另一种是数据缓存!
    输出缓存是指把一次请求所产生的动态输出保存于内存中。而页面缓存就属于输出缓存,就是把整个页面缓存起来,如果一个ASP.NET站点存取次数很多的话,而把一些常用到的页面放入内存会带来性能上的提高,因为只要请求页面被缓存起来之后,以后所以对页面的请求(GET和HEAD请求),就不会创建编译页面实例,而是直接从内存中获取!
    缺省情况下,输出缓存选项是被打开的,但不是任意的页面都讲被缓存,需要显示的指定哪些页面需要被缓存!
    缓存后的页面,对于GET和HEAD请求将直接从缓存入口中取出返回给用户,而对页面的回传(POST请求)通常是重新动态的生成页面,即重新加载,和GET.HEAD请求不一样,这点要注意!!
    输出缓存有页面缓存的过期/有效时间策略,即一个页面如果被指定60秒的缓存时间,那在这60秒内,页面缓存在内存中,如果超过60秒,则该页面缓存在内存中被清楚,这种方式的过期策略称之为“强制过期”。
    页面输出缓存设置方式有2种:一种是高级设置,一种是低级设置
    高级设置是通过PAGE指令,低级别设置是通过CACHE API 也就是HTTPCachePolicy类来实现,下面我把这两种方式写出来:
    Page指令<%@ outputcache duration=秒数%>
    页面中加上这种指令后,在指定的秒数内,对该页面的请求所返回结果都是一样的!
    这个设置总共有5个可用的特性,事实上,只有Duration和VaryByParam特性是必须的。
    1 控制页面缓存的位置
    Location :指能缓存资源的3个不同的地方(浏览器、代理服务器和Web服务器)。在编写页面时可以使用这个特性指定允许页面输出缓存在哪个位置。该特性有5个可能的设置
    (1)Any 默认值,即可以缓存在客户端浏览器,也可以缓存在代理服务器里,或者缓存在Web服务器本身
    (2)Client 只能缓存在客户端(即发出请求的浏览器)
    (3)Downstream 输出缓存能存储支持HTTP1.1缓存设备中(比如代理服务器)
    (4)Server 输出缓存将存储在Web服务器上
    (5)None 禁用输出缓存
    2 控制缓存中页面的生命周期
    Duration 指定缓存存在的周期,单位是秒
    3 使用参数启用页面的不同版本
    VaryByParam 指定可以缓存同一页面的不同版本,可以设置一个页面传递参数的变量名,然后页面缓存
    不同值来进行不同的版本缓存,也可以设置成“*”,可以缓存页面的每个可能的版本,但这个是极度耗内存的做法,并不是一
    个提高性能的好主意!也可以把该参数设置为“none”,意思就是不要根据参数来缓存同页面的不同版本。
    4 启用页面的不同版本的其他方法
    VaryByHeader和VaryByCustom特性与VaryByParam的相似之处在与:它们允许指定何时创建页面新的缓存版本。
    VaryByHeader :允许我们根据由分号分隔的HTTP头的列表来缓存页面的不同版本(具体还没用过,嘿嘿)
    VaryByCustom :该特性当设为“browser”,允许我们根据浏览器的名称和主版本信息缓存不同版本,也可以把它设为一个
    自定义方法的名称,从而实现我们自己的逻辑,控制缓存的版本。
    Cache API指令
    //指定页面输出缓存下一个10秒到期
    Response.Cache.SetExpires(DateTime.Now.AddSeconds(10));
    //指定所有用户都有对缓存的访问权利
    Response.Cache.SetCacheability(HttpCacheability.Public);

    转自:http://www.blogcn.com/user52/it1/blog/29308733.html

  • 相关阅读:
    react路由组件&&非路由组件
    react函数式组件(非路由组件)实现路由跳转
    react使用antd组件递归实现左侧菜单导航树
    【LeetCode】65. Valid Number
    【LeetCode】66. Plus One (2 solutions)
    【LeetCode】68. Text Justification
    【LeetCode】69. Sqrt(x) (2 solutions)
    【LeetCode】72. Edit Distance
    【LeetCode】73. Set Matrix Zeroes (2 solutions)
    【LeetCode】76. Minimum Window Substring
  • 原文地址:https://www.cnblogs.com/shiningrise/p/819187.html
Copyright © 2011-2022 走看看