OutputCache详解

当用户访问页面时,整个页面将会被服务器保存在内存中,这样就对页面进行了缓存。当用户再次访问该页,页面不会再次执行数据操作,页面首先会检查服务器中是否存在缓存,如果缓存存在,则直接从缓存中获取页面信息,如果页面不存在,则创建缓存。

页面输出缓存适用于那些数据量较多,而不会进行过多的事件操作的页面,如果一个页面需要执行大量的事件更新,以及数据更新,则并不能使用页面输出缓存。使用@OutputCatch指令能够声明页面输出缓存,示例代码如下所示。

<%@ OutputCache Duration="120" VaryByParam="none" %>

上述代码使用@OutputCatch指令声明了页面缓存,该页面将被缓存120秒。@OutputCatch指令包括10个属性,通过这些属性能够分别为页面的不同情况进行缓存设置,常用的属性如下所示:

q CacheProfile:获取或设置OutputCacheProfile名称。

q Duration:获取或设置缓存项需要保留在缓存中的时间。

q VaryByHeader:获取或设置用于改变缓存项的一组都好分隔的HTTP标头名称。

q Location:获取或设置一个值,该值确定缓存项的位置,包括Any、Clint、Downstream、None、Server和ServerAndClient。默认值为Any。

q VaryByControl:获取或设置一簇分好分隔的控件标识符,这些标识符包含在当前页或用户控件内,用于改变当前的缓存项。

q NoStore:获取或设置一个值,该值确定是否设置了“Http Cache-Control:no-store”指令。

q VaryByCustom:获取输出缓存用来改变缓存项的自定义字符串列表。

q Enabled:获取或设置一个值,该值指示是否对当前内容启用了输出缓存。

q VaryByParam:获取查询字符串或窗体POST参数的列表。

通过设置相应的属性,可以为页面设置相应的缓存,当需要为Default.aspx设置缓存项时,可以使用VaryByParam属性进行设置,示例代码如下所示。

<%@ OutputCache Duration="120" VaryByParam="none" %>

上述代码使用了Duration属性和VarByParam属性设置了当前页的缓存属性。为一个页面进行整体的缓存设置往往是没有必要的,常常还会造成困扰,例如Default.aspx?id=1和Default.aspx?id=100在缓存时可能呈现的页面是相同的,这往往不是开发人员所希望的。通过配置VarByParam属性能够指定缓存参数,示例代码如下所示。

<%@ OutputCache Duration="120" VaryByParam="id" %>

上述代码则通过参数id进行缓存,当id项不同时,ASP.NET所进行的页面缓存也不尽相同。这样保证了Default.aspx?id=1和Default.aspx?id=100在缓存时所显示的页面并不一致。VarByHeader和VarByCustom主要用于根据访问页面的客户端对页面的外观或内容进行自定义。在ASP.NET中,一个页面可能需要为PC用户和MOBILE用户呈现输出,因此可以通过客户端的版本不同来缓存不同的数据,示例代码如下所示。

<%@ OutputCache Duration="120" VaryByParam="none" VaryByCustom="browser" %>

上述代码则为每个浏览器单独设置了缓存条目。

学习自http://blog.csdn.net/rewoshengqi/article/details/5748405

时间: 2024-08-08 05:35:40

OutputCache详解的相关文章

OutputCache属性详解(四)— SqlDependency

目录 OutputCache概念学习 OutputCache属性详解(一) OutputCache属性详解(二) OutputCache属性详解(三) OutputCache属性详解(四)— SqlDependency NoStore bool值,用于决定是否阻止敏感信息的二级存储,默认值为 false. 该属性的测试代码,我没写出来,不知道如何写,各位知道的大侠请说下哈! SqlDependency 标识一组数据库/表名称对的字符串值,页或控件的输出缓存依赖于这些名称对.请注意,SqlCach

OutputCache属性详解(三)— VaryByHeader,VaryByCustom

目录 OutputCache概念学习 OutputCache属性详解(一) OutputCache属性详解(二) OutputCache属性详解(三) VaryByHeader :分号分隔的 HTTP 标头列表,用于使输出缓存发生变化.将该特性设为多标头时,对于每个指定标头组合,输出缓存都包含一个不同版本的请求文档. 注意:设置 VaryByHeader 特性将启用在所有 HTTP 1.1 版缓存中缓存项,而不仅仅在 ASP.NET 缓存中进行缓存.用户控件中的 @ OutputCache 指令

OutputCache属性详解一Location

目录 OutputCache概念学习 OutputCache属性详解(一) OutputCache属性详解一Location Web应用程序中的使用缓存位置: 客户端缓存(Client Caching) 代理缓存(Proxy Caching) 反向代理缓存(Reverse Proxy Caching) 服务器缓存(Web Server Caching) Location:OutputCacheLocation 枚举值之一. 使用该枚举指定的值.这些值确定页输出的缓存位置.默认值为 Any. An

[转]Web.config配置文件详解(新手必看)

本文转自:http://www.cnblogs.com/gaoweipeng/archive/2009/05/17/1458762.html 花了点时间整理了一下ASP.NET Web.config配置文件的基本使用方法.很适合新手参看,由于Web.config在使用很灵活,可以自定义一些节点.所以这里只介绍一些比较常用的节点. <?xml version="1.0"?> <!--注意: 除了手动编辑此文件以外,您还可以使用 Web 管理工具来配置应用程序的设置.可以

ASP.NET 运行时详解 揭开请求过程神秘面纱

对于ASP.NET开发,排在前五的话题离不开请求生命周期.像什么Cache.身份认证.Role管理.Routing映射,微软到底在请求过程中干了哪些隐秘的事,现在是时候揭晓了.抛开乌云见晴天,接下来就一步步揭开请求管道神秘面纱. 上篇回顾 在介绍本篇内容之前,让我们先回顾下上一篇<ASP.NET运行时详解 集成模式和经典模式>的主要内容.在上一篇随笔中,我们提到ASP.NET运行时通过Application的InitInternal方法初始化运行管道.ASP.NET运行时提供了两种初始化管道模

【转】Asp.Net MVC3 简单入门详解过滤器Filter

原文地址:http://www.cnblogs.com/boruipower/archive/2012/11/18/2775924.html 前言 在开发大项目的时候总会有相关的AOP面向切面编程的组件,而MVC(特指:Asp.Net MVC,以下皆同)项目中不想让MVC开发人员去关心和写类似身份验证,日志,异常,行为截取等这部分重复的代码,那我们可以通过AOP截取实现,而在MVC项目中我们就可以直接使用它提供的Filter的特性帮我们解决,不用自己实现复杂的AOP了. 在Asp.net Mvc

c#特性详解【含常用过滤器实例】

基础拾遗 基础拾遗------特性详解 基础拾遗------webservice详解 基础拾遗------redis详解 基础拾遗------反射详解 基础拾遗------委托详解 基础拾遗------接口详解 基础拾遗------泛型详解 前言 本来7月份想着是用一个月把基础拾遗写完的,结果断断续续写了4个月了,才写了这几篇,这两天又规划着多写几篇,希望能坚持吧.两天一次和同事聊天竟然好多人都不知道,他们每天却都在用. 1.特性概念 特性(Attribute)是用于在运行时传递程序中各种元素(

ASP.NET中Web.Config配置文件详解与应用

1.首先是Web.Config配置文件详解的参数含义(具体内容都在以下代码中有注释-我从网上找到的) 1 <?xml version="1.0" encoding="utf-8"?> 2 3 <!--注意: 除了手动编辑此文件以外,您还可以使用 Web 管理工具来配置应用程序的设置.可以使用 Visual Studio 中 4 的“网站”->“Asp.Net 配置”选项. 5 6 设置和注释的完整列表在 machine.config.comm

[转载]WebConfig配置文件详解

<?xml version="1.0"?> <!--注意: 除了手动编辑此文件以外,您还可以使用 Web 管理工具来配置应用程序的设置.可以使用 Visual Studio 中的“网站”->“Asp.Net 配置”选项. 设置和注释的完整列表在 machine.config.comments 中,该文件通常位于 "Windows"Microsoft.Net"Framework"v2.x"Config 中.--&g