最近要用到缓存,所以才去找了相关资料,开始在一个用户控件头加入@ OutputCache指令,发现第一次进入页面是对了,第二次再进入时就出错了。郁闷……
这里@ OutputCache的一些参数说明:

以声明的方式控制 ASP.NET 页或页中包含的用户控件的输出缓存策略。有关输出缓存的更多信息,请参见 ASP.NET 缓存功能。

<%@ OutputCache Duration="#ofseconds" Location="Any | Client | Downstream | Server | None" Shared="True | False" VaryByControl="controlname" VaryByCustom="browser | customstring" VaryByHeader="headers" VaryByParam="parametername" %>

一、属性

Duration
页或用户控件进行缓存的时间(以秒计)。在页或用户控件上设置该属性为来自对象的 HTTP 响应建立了一个过期策略,并将自动缓存页或用户控件输出。
注意   该属性是必需的。如果未包含该属性,将出现分析器错误。

Location
OutputCacheLocation 枚举值之一。默认值为 Any。
警告   包含在用户控件(.ascx 文件)中的 @ OutputCache 指令不支持此属性。

Shared
一个布尔值,确定用户控件输出是否可以由多个页共享。默认值为 false。有关详细信息,请参见备注部分。
注意   包含在 ASP.NET 页(.aspx 文件)中的 @ OutputCache 指令不支持此属性。

VaryByCustom
表示自定义输出缓存要求的任意文本。如果赋予该属性的值是 browser,缓存将随浏览器名称和主要版本信息的不同而不同。如果输入了自定义字符串,您必须在应用程序的 Global.asax 文件中重写 HttpApplication.GetVaryByCustomString 方法。

VaryByHeader
分号分隔的 HTTP 标头列表,用于使输出缓存发生变化。当将该属性设为多标头时,对于每个指定的标头,输出缓存都包含一个请求文档的不同版本。
注意   设置 VaryByHeader 属性在所有 HTTP 1.1 缓存中启用缓存项,而不仅限于 ASP.NET 缓存。用户控件中的 @ OutputCache 指令不支持此属性。

VaryByParam
分号分隔的字符串列表,用于使输出缓存发生变化。默认情况下,这些字符串与用 GET 方法属性发送的查询字符串值对应,或与用 POST 方法发送的参数对应。当将该属性设置为多参数时,对于每个指定的参数,输出缓存都包含一个请求文档的不同版本。可能的值包括 none、* 和任何有效的查询字符串或 POST 参数名称。
警告   在输出缓存 ASP.NET 页时,该属性是必需的。它对于用户控件也是必需的,除非已经在用户控件的 @ OutputCache 指令中包含了 VaryByControl 属性。如果没有包含它,则发生分析器错误。如果您不想使缓存内容随任何指定参数发生变化,请将该值设为 none。如果要使输出缓存根据所有参数值发生变化,请将属性设置为 *。

VaryByControl
一个分号分隔的字符串列表,用于更改用户控件的输出缓存。这些字符串代表在用户控件中声明的 ASP.NET 服务器控件的 ID 属性值。有关详细信息,请参见缓存 ASP.NET 页的某些部分。
注意   除非已经包含了 VaryByParam 属性,否则在用户控件 @ OutputCache 指令中,该属性是必需的。ASP.NET 页中的 @ OutputCache 指令不支持该属性。

二、备注
为页输出缓存设置值与通过 HttpResponse.Cache 属性操作 HttpCachePolicy.SetExpires 和 HttpCachePolicy.SetCacheability 方法相同。如果在创建用户控件时设置 VaryByParam 属性,可实现该控件的部分页缓存。

如果 Web 窗体页要求用户查看授权,则输出缓存将 Cache-Control HTTP 标头设置为 private。有关所有这些主题的详细信息,请参见缓存 ASP.NET 页。

如果将 Shared 属性设置为 true,则缓存的用户控件输出可以被多个 Web 窗体页访问。如果不设置为 true,默认行为是为包含用户控件的每一页缓存用户控件输出的一个版本。通过启用 Shared 属性,可以潜在地节省大量的内存。有关详细信息,请参见缓存 ASP.NET 页的某些部分。

三、示例
下面的示例说明了如何设置页或用户控件进行输出缓存的持续时间。

<%@ OutputCache Duration="100" VaryByParam="none" %>
下一个示例说明了如何指示输出缓存来对页或用户控件进行缓存,此缓存处理是根据来自窗体的 POST 或来自查询字符串的位置和计数窗体参数进行的。每个收到的具有不同位置或计数参数(或两者)的 HTTP 请求都进行 10 秒的缓存处理。带有相同参数值的任何后继请求都将从缓存中得到满足,直至超过输入的缓存期。

<%@ OutputCache Duration="100" VaryByParam="location;count" %>

转载于:https://www.cnblogs.com/baoposhou/archive/2006/04/20/380636.html

页面级缓存@ OutputCache相关推荐

  1. nuxt渲染html文件,Nuxt页面级缓存

    虽然 Vue 的服务器端渲染 (SSR) 相当快速,但是由于需要为每次请求为了避免交叉请求状态污染,都创建一个新的根Vue实例,创建组件实例和虚拟 DOM 节点的开销,无法与纯基于字符串拼接的模板的性 ...

  2. java 页面级缓存_用CashFilter实现页面级缓存实践

    1.MySQL在本地localhost的test数据库 建person表,暂以字段id,name,passWord ,表中可输入一行值. 2.建类 DAOUtil import  java.sql.C ...

  3. 页面缓存 OutputCache

    <%@ OutputCache Duration="15" VaryByParam="none" %> 使用页面输出缓存 <%@ Output ...

  4. .Net页面缓存OutPutCache详解

    一 它在Web.Config中的位置<system.web><!--页面缓存--><caching><outputCacheSettings><o ...

  5. 页面缓存OutputCache

    缓存:把数据放到内存里面,下次请求的时候,直接从内存读取数据返回给客户端就可以了,不用再去访问数据库或者磁盘,用内存空间换磁盘读的时间. 页面缓存 使用@OutputCatch指令能够声明页面输出缓存 ...

  6. MVC缓存OutPutCache学习笔记 (一) 参数配置

    OutPutCache 参数详解 Duration : 缓存时间,以秒为单位,这个除非你的Location=None,可以不添加此属性,其余时候都是必须的. Location : 缓存放置的位置; 该 ...

  7. 【转】系统缓存全解析二:动态缓存(2)-页面局部缓存的两种方式

    有时缓存整个页面是不现实的,因为页的某些部分可能在每次请求时都需要变化.在这些情况下,只能缓存页的一部分.顾名思义,页面部分缓存是将页面部分内容保存在内存中以便响应用户请求,而页面其他部分内容则为动态 ...

  8. 页面输出缓存[转载]

    页面输出缓存作为最简单的缓存形式,输出缓存只是在内存中保留为响应请求而发送的HTML的副本.其后再有请求时将提供缓存的输出,直到缓存到期,这样,性能有可能得到很大的提高.     可以用以下几种方式进 ...

  9. SpringBoot 集成 layering-cache 实现两级缓存调研与实践

    前言 对于系统查多改少的数据,可以通过缓存来提升系统的访问性能.一般情况下我们会采用 Redis ,但是如果仅仅依赖 Redis 很容易出现缓存雪崩的情况.为了防止缓存雪崩可以通过 Redis 高可用 ...

最新文章

  1. Sub-process /usr/bin/dpkg returned an error code (1)
  2. 数据结构实验之数组二:稀疏矩阵
  3. dubbo admin 安装
  4. DIV常用属性大全自己整理
  5. 四川省内二本计算机公立好的大学排名,四川有哪些二本院校是公立的?附四川省公立二本大学排名及分数线...
  6. [leetcod] Clone Graph
  7. 微信分享链接,如何自定义图片,标题,内容介绍
  8. 第九章 限制性图谱和正则表达式
  9. java获取当前路径的几种方法
  10. 计算机一级有几套试卷,计算机一级B十五套试卷
  11. Aluminium cold plate
  12. PMP(第六版)中的沟通方法
  13. 《设计模式之禅》前言
  14. vulnhub靶场——THE PLANETS:EARTH
  15. 2022年高教社杯全国大学生数学建模竞赛-【赛题解析篇】B题:无人机遂行编队飞行中的纯方位无源定位(附Python代码实现)
  16. 数学式子对应的c语言表达式是,把数学式写成C语言表达式
  17. 网络安全攻防演练项目介绍
  18. 音视频 SDP 添加码率
  19. 组播——IGMP协议讲解
  20. IDM下载器|Windows系统经典下载工具idm6.41|IDM如何在线视频下载工具 |下载视频教程

热门文章

  1. 计算机一级考试word操作题主要题型,(word)计算机一级考试题型.doc
  2. linux 下停止监听程序,Linux下启动Oracle服务和监听程序步骤
  3. 【caffe-Windows】caffe+VS2013+Windows无GPU快速配置教程
  4. 【TensorFlow-windows】学习笔记二——低级API
  5. 李宏毅机器学习课程-Structured Learning
  6. How to ignore files and directories in subversion?
  7. 爬虫——正则表达式re模块
  8. 【从零开始】Python字符串的操作方法
  9. JQuery AJAX提交中文乱码的解决方案
  10. 关于html和javascript在浏览器中的加载顺序问题的讨论