页面级缓存@ OutputCache
最近要用到缓存,所以才去找了相关资料,开始在一个用户控件头加入@ 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相关推荐
- nuxt渲染html文件,Nuxt页面级缓存
虽然 Vue 的服务器端渲染 (SSR) 相当快速,但是由于需要为每次请求为了避免交叉请求状态污染,都创建一个新的根Vue实例,创建组件实例和虚拟 DOM 节点的开销,无法与纯基于字符串拼接的模板的性 ...
- java 页面级缓存_用CashFilter实现页面级缓存实践
1.MySQL在本地localhost的test数据库 建person表,暂以字段id,name,passWord ,表中可输入一行值. 2.建类 DAOUtil import java.sql.C ...
- 页面缓存 OutputCache
<%@ OutputCache Duration="15" VaryByParam="none" %> 使用页面输出缓存 <%@ Output ...
- .Net页面缓存OutPutCache详解
一 它在Web.Config中的位置<system.web><!--页面缓存--><caching><outputCacheSettings><o ...
- 页面缓存OutputCache
缓存:把数据放到内存里面,下次请求的时候,直接从内存读取数据返回给客户端就可以了,不用再去访问数据库或者磁盘,用内存空间换磁盘读的时间. 页面缓存 使用@OutputCatch指令能够声明页面输出缓存 ...
- MVC缓存OutPutCache学习笔记 (一) 参数配置
OutPutCache 参数详解 Duration : 缓存时间,以秒为单位,这个除非你的Location=None,可以不添加此属性,其余时候都是必须的. Location : 缓存放置的位置; 该 ...
- 【转】系统缓存全解析二:动态缓存(2)-页面局部缓存的两种方式
有时缓存整个页面是不现实的,因为页的某些部分可能在每次请求时都需要变化.在这些情况下,只能缓存页的一部分.顾名思义,页面部分缓存是将页面部分内容保存在内存中以便响应用户请求,而页面其他部分内容则为动态 ...
- 页面输出缓存[转载]
页面输出缓存作为最简单的缓存形式,输出缓存只是在内存中保留为响应请求而发送的HTML的副本.其后再有请求时将提供缓存的输出,直到缓存到期,这样,性能有可能得到很大的提高. 可以用以下几种方式进 ...
- SpringBoot 集成 layering-cache 实现两级缓存调研与实践
前言 对于系统查多改少的数据,可以通过缓存来提升系统的访问性能.一般情况下我们会采用 Redis ,但是如果仅仅依赖 Redis 很容易出现缓存雪崩的情况.为了防止缓存雪崩可以通过 Redis 高可用 ...
最新文章
- Sub-process /usr/bin/dpkg returned an error code (1)
- 数据结构实验之数组二:稀疏矩阵
- dubbo admin 安装
- DIV常用属性大全自己整理
- 四川省内二本计算机公立好的大学排名,四川有哪些二本院校是公立的?附四川省公立二本大学排名及分数线...
- [leetcod] Clone Graph
- 微信分享链接,如何自定义图片,标题,内容介绍
- 第九章 限制性图谱和正则表达式
- java获取当前路径的几种方法
- 计算机一级有几套试卷,计算机一级B十五套试卷
- Aluminium cold plate
- PMP(第六版)中的沟通方法
- 《设计模式之禅》前言
- vulnhub靶场——THE PLANETS:EARTH
- 2022年高教社杯全国大学生数学建模竞赛-【赛题解析篇】B题:无人机遂行编队飞行中的纯方位无源定位(附Python代码实现)
- 数学式子对应的c语言表达式是,把数学式写成C语言表达式
- 网络安全攻防演练项目介绍
- 音视频 SDP 添加码率
- 组播——IGMP协议讲解
- IDM下载器|Windows系统经典下载工具idm6.41|IDM如何在线视频下载工具 |下载视频教程
热门文章
- 计算机一级考试word操作题主要题型,(word)计算机一级考试题型.doc
- linux 下停止监听程序,Linux下启动Oracle服务和监听程序步骤
- 【caffe-Windows】caffe+VS2013+Windows无GPU快速配置教程
- 【TensorFlow-windows】学习笔记二——低级API
- 李宏毅机器学习课程-Structured Learning
- How to ignore files and directories in subversion?
- 爬虫——正则表达式re模块
- 【从零开始】Python字符串的操作方法
- JQuery AJAX提交中文乱码的解决方案
- 关于html和javascript在浏览器中的加载顺序问题的讨论