OutputCache概念学习
目录
关于缓存的介绍,可以参考这里,写的非常好。
缓存的分类:
- 客户端缓存(Client Caching)
- 代理缓存(Proxy Caching)
- 反向代理缓存(Reverse Proxy Caching)
- 服务器缓存(Web Server Caching)
缓存的好处及应用:
- 可以让如css,js,image,aspx 等资源文件在第二次访问时读取本地而不用再次请求服务器端,减少客户端对服务器资源请求的压力,加快客户端响应速度。
- 对于经常使用的数据源,将其存储在数据缓存中或者内存中,这样来减少数据库请求,缓解数据库压力。
- 将网站部署在多台计算机上,采用分布式方式处理,可以有效解决多个用户请求对一台服务器所造成的压力,加快客户端请求响应(分布式部署)。
- 将经常访问但数据经常不更新的页面,可以将该页面静态化处理,有效减少服务器压力和客户端响应速度。
当然,上面的只是我个人的见解,如有问题欢迎指正。
ASP.NET 提供了方便的方法来控制缓存。@ OutputCache指令可用于控制页面输出缓存
OutputCache 语法:
<%@ OutputCache Duration="#ofseconds"
Location="Any | Client | Downstream | Server | None |
ServerAndClient "
Shared="True | False"
VaryByControl="controlname"
VaryByCustom="browser | customstring"
VaryByHeader="headers"
VaryByParam="parametername"
VaryByContentEncoding="encodings"
CacheProfile="cache profile name | ''"
NoStore="true | false"
SqlDependency="database/table name pair | CommandNotification"
ProviderName="Provider Name"
%>
OutputCache 属性:
参考:http://msdn.microsoft.com/zh-cn/library/hdxfb6cy.aspx
- Duration:页或用户控件进行缓存的时间(以秒计)。在页或用户控件上设置该特性为来自对象的 HTTP 响应建立了一个过期策略,并将自动缓存页或用户控件输出。
- Location:OutputCacheLocation 枚举值之一。默认值为 Any。
Any:输出缓存可位于产生请求的浏览器客户端、参与请求的代理服务器(或任何其他服务器)或处理请求的服务器上。此值对应于 HttpCacheability.Public 枚举值。
Client:输出缓存位于产生请求的浏览器客户端上。此值对应于 HttpCacheability.Private 枚举值。
Downstream:输出缓存可存储在任何 HTTP 1.1 可缓存设备中,源服务器除外。这包括代理服务器和发出请求的客户端。
None:对于请求的页,禁用输出缓存。此值对应于 HttpCacheability.NoCache 枚举值。
Server:输出缓存位于处理请求的 Web 服务器上。此值对应于 HttpCacheability.Server 枚举值。
ServerAndClient:输出缓存只能存储在源服务器或发出请求的客户端中。代理服务器不能缓存响应。此值对应于 HttpCacheability.Private 和 HttpCacheability.Server 枚举值的组合。
- CacheProfile:与该页关联的缓存设置的名称。这是可选特性,默认值为空字符串 ("")。
- NoStore:一个布尔值,它决定了是否阻止敏感信息的二级存储。
- ProviderName:一个字符串值,标识要使用的自定义输出缓存提供程序。
- Shared:一个布尔值,确定用户控件输出是否可以由多个页共享。默认值为 false。
- SqlDependency: 标识一组数据库/表名称对的字符串值,页或控件的输出缓存依赖于这些名称对。请注意,SqlCacheDependency 类监视输出缓存所依赖的数据库中的表,因此当更新表中的项时,使用基于表的轮询时将从缓存中移除这些项。如果以值 CommandNotification: 使用通知(在 Microsoft SQL Server 2005 中),则最终会使用 SqlDependency 类向 SQL Server 2005 服务器注册查询通知。
- VaryByCustom: 任何表示自定义输出缓存要求的文本。如果特性的赋值为 browser,缓存将随浏览器名称和主要版本信息的不同而异。如果输入自定义字符串,则必须在应用程序的 Global.asax 文件中重写 GetVaryByCustomString 方法。
- VaryByHeader: 分号分隔的 HTTP 标头列表,用于使输出缓存发生变化。将该特性设为多标头时,对于每个指定标头组合,输出缓存都包含一个不同版本的请求文档。
- VaryByParam: 分号分隔的字符串列表,用于使输出缓存发生变化。默认情况下,这些字符串对应于使用 GET 方法特性发送的查询字符串值,或者使用 POST 方法发送的参数。将该特性设置为多个参数时,对于每个指定参数组合,输出缓存都包含一个不同版本的请求文档。可能的值包括 none、星号 (*) 以及任何有效的查询字符串或 POST 参数名称。
- VaryByControl:分号分隔的字符串列表,用于改变用户控件的输出缓存。这些字符串代表用户控件中声明的 ASP.NET 服务器控件的 ID 属性值。
- VaryByContentEncodings: 以分号分隔的字符串列表,用于更改输出缓存。将 VaryByContentEncodings 特性用于 Accept-Encoding 标头,可确定不同内容编码获得缓存响应的方式。有关如何指定 Accept-Encoding 标头的更多信息,请参见 W3C 网站上的 Hypertext Transfer Protocol -- HTTP/1.1(超文本传输协议 -- HTTP/1.1)规范的 14.3 节。
关于 OutputCache 的概念就写到这,后面会写到每个属性的使用以及差异化,希望大家多多支持。
OutputCache概念学习的更多相关文章
- @OutputCache 详解-文章目录
OutputCache概念学习 OutputCache属性详解(一)一Duration.VaryByParam OutputCache属性详解(二)一 Location OutputCache属性详解 ...
- OutputCache属性详解(一)一Duration、VaryByParam
目录 OutputCache概念学习 OutputCache属性详解(一) OutputCache属性详解(二) OutputCache属性详解(三) OutputCache属性详解(四)— SqlD ...
- OutputCache属性详解(二)一 Location
目录 OutputCache概念学习 OutputCache属性详解(一) OutputCache属性详解(二) OutputCache属性详解(三) OutputCache属性详解(四)— SqlD ...
- OutputCache属性详解(三)— VaryByHeader,VaryByCustom
目录 OutputCache概念学习 OutputCache属性详解(一) OutputCache属性详解(二) OutputCache属性详解(三) OutputCache属性详解(四)— SqlD ...
- OutputCache属性详解(四)— SqlDependency
目录 OutputCache概念学习 OutputCache属性详解(一) OutputCache属性详解(二) OutputCache属性详解(三) OutputCache属性详解(四)— SqlD ...
- ASP.NET MVC随记汇总
1.学习教程: 1.ASP.NET MVC4入门教程:Asp.Net MVC4入门指南 2.ASP.NET MVC4系类教程 3.ASP.NET MVC学习系列 4.从零开始学习ASP.NET MVC ...
- C# - 缓存OutputCache(二)缓存详细介绍
本文是通过网上&个人总结的 1.缓存介绍 缓存是为了提高访问速度,而做的技术. 缓存主要有以下几类:1)客户端缓存Client Caching 2)代理缓存Proxy Caching 3)方向 ...
- C# - 缓存OutputCache(一)基础配置
本文是通过网上&个人总结的 1. 介绍 OutputCache输出缓存是复制ASP.NET页面,保存在内存的机制.这种行为有助于提高性能,通过返回的缓存达到网页及时响应的目的,减少客户机器需要 ...
- ASP.NET 中 OutputCache 指令参数详解
使用@ OutputCache指令使用@ OutputCache指令,能够实现对页面输出缓存的一般性需要.@ OutputCache指令在ASP.NET页或者页中包含的用户控件的头部声明.这种方式非常 ...
随机推荐
- [spark案例学习] 单词计数
数据准备 数据下载:<莎士比亚全集> 我们先来看看原始数据:首先将数据加载到RDD,然后显示数据框的前15行. shakespeareDF = sqlContext.read.text(f ...
- [UCSD白板题] Sorting: 3-Way Partition
Problem Introduction The goal in this problem is to redesign a given implementation of the randomize ...
- 尝试u3d中将代码与编辑器分离
最近与朋友交流,他一直是做端游,最近接触了u3d以后无法忍受代码与配置文件,美术资源全部纠缠在一起的状况,于是一直在琢磨怎么将编辑器与代码彻底分离. 自己也抽空研究一下,碰到一些问题先记录下来. 首先 ...
- C代码工具--自动生成enum值和名字映射代码
这年头好像继续做C语言的人不多了,年轻人大多去互联网和移动应用.确实,那两个领域现在来钱快,且总是供不应求.就说刚刚在一个旧同事的微信群里,有人刚放出自己有团队可以做App几分钟,哇塞,好几个人说有项 ...
- hdu acm 1166 敌兵布阵 (线段树)
敌兵布阵 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total Submi ...
- EDA技术与ASIC设计和FPGA开发有什么关系?FPGA在ASIC设计中有什么用途?
利用EDA技术进行电子系统设计的最后目标是完成专用集成电路ASIC的设计和实现:FPGA和CPLD是实现这一途径的主流器件.FPGA和CPLD通常也被称为可编程专用IC,或可编程ASIC.FPGA和C ...
- jquery Ajax获取本地json 以及xml文件
$(function() { $("#Button1").click(function() { //按钮单击事件 //打开文件,并通过回调函数处理获取的数据 $.get(" ...
- LintCode 366 Fibonacci
/* 1st method will lead to time limit *//* the time complexity is exponential sicne T(n) = T(n-1) + ...
- ASP.NET 导出gridview中的数据到Excel表中,并对指定单元格换行操作
1. 使用NPOI读取及生成excel表. (1)导出Click事件: 获取DataTable; 给文件加文件名: string xlsxName = "xxx_" + DateT ...
- 在自定义TableViewCell类里面添加按钮事件触发不了的一些实践
我的自定义cell上面有5个控件,分别是一个背景的UIImageView,一个专辑的UIImageView(上面加了一个播放的button),一个专辑名字的UIImageView(上面加了显示标题的U ...