ASP.NET输出缓存

ASP.NET缓存通过在内存中存储页面输出来构建一个高性能的,可伸缩的asp.net web应用程序。在随 后的请求中,网页代码不用执行,直接使缓存的输出用于服务的请求。在本文中,我们专注于ASP.NET页 面输出缓存。

这只是在一站式开发技术框架中Silverlight样例的一部分,你能从http://cfx.codeplex.com/上获得 更多的例子。

Microsoft All-In-One Code Framework ,微软通过典型的三种流行的编程语言(Visual C#, VB.NET和Visual C++)编写代码示例代码来描绘微软主要的开发技术。每个示例是精心挑选,组成的,并 提供测试,或使用的编码方案。

默认情况下,我们去请求一个ASP.NET 站点,每次请求都将进行多步处理的。 例如页面的初始化,加 载,渲染等等。这样会消耗大量的服务器资源。考虑以下情形:许多客户浏览ASP.NET的新闻网页和新闻 网站的页面几个小时都不会改变 。基于共同的路线,多个客户的几乎在同一时间在请求同一个新闻网页 ,ASP.NET将执行相同的代码生成多次相同新闻。这是一种浪费资源的过程。因此,我们开始考虑能否生 成一次响应,它能服务于多个客户。答案就是缓存。

ASP.NET提供了两个缓存的方法。输出缓存(包括页面级缓存和用户控件级缓存)和缓存API 。在本文 中,我们将讨论输出缓存。输出缓存的优点是易于实现,并在大多数情况下是足够的。它只是在内存中保 存了发送给客户端输出和后续请求答辩书的副本,然后用缓存的输出,直到缓存过期的反应,然后,直到 缓存过期,后续的请求响应缓存输出。这令人难以置信的提高ASP.NET Web应用程序的性能。

对于ASP.NET输出缓存,ASP.NET使用@ OutputCache指令,宣布许多属性来控制ASP.NET页或页面上的 用户控件的 输出缓存的策略。

代码

<%@ 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"
%>

在本文中,我们将介绍@ OutputCache的 Duration, VaryByCustom, VaryByParam, 和VaryByControl 属性来缓存我们的页面输出 ,对于其它属性,您可以参考:http://msdn.microsoft.com/en- us/library/hdxfb6cy.aspx.

下面演练一步一步如何使用它们。在演示中,我们使用的日期时间,以确定页面是否被缓存。(在页面 加载事件中,我们将日期时间写在一个名字为“lblResult”的控件中)

时间: 2024-09-15 16:24:41

ASP.NET输出缓存的相关文章

ASP.NET 输出缓存移除的实例代码

  ASP.NET输出缓存的使用网上已经有很多例子了,这里主要介绍下如何在后台管理中移除缓存. 1.基于页面缓存 对于页面:Default.aspx 如果页面顶部添加: <%@ OutputCache Duration="60" VaryByParam="none" %> 在后台管理中要移除很简单: System.Web.HttpResponse.RemoveOutputCacheItem(Page.ResolveUrl("Default.as

ASP.NET 4 AppFabric 输出缓存提供程序

缓存是用来保存你数据的地方,从而使你的应用程序访问更快速.缓存可以根据你的需要分配到许多台机器上,而开发人员无需关心数据究竟在哪台机器上.为了获得超快的性能,你甚至可以牺牲数据一致性,将缓存复制到调用客户端(本地缓存).所保存的数据可以是任何可被序列化的.NET对象. 使用缓存的目的是让你的应用程序的性能和扩展性更好.AppFabric支持显式和隐式两种缓存使用方式来提升扩展性和性能.如果你是一名ASP.NET的开发人员,隐式和显式缓存使用方式对你来说应该相当熟悉.显式缓存使用方式让你能通过Ap

ASP.NET 2.0中的页面输出缓存

asp.net|缓存|页面 静态页面全部内容保存在服务器内存中.当再有请求时,系统将缓存中的相关数据直接输出,直到缓存数据过期.这个过程中,缓存不需要再次经过页面处理生命周期.这样可以缩短请求响应时间,提高应用程序性能.很显然,页面输出缓存适用于不需要频繁更新数据,而占用大量时间和资源才能编译生成的页面.对于那些数据经常更新的页面,则不适用.默认情况下,ASP.NET 2.0启用了页面输出缓存功能,但并不缓存任何响应的输出.开发人员必须通过设置,使得某些页面的响应成为缓存的一部分. 设置页面输出

解决asp.net Sharepoint无法连接发布自定义字符串处理程序,不能进行输出缓存处理的方法_实用技巧

问题描述: 无法连接发布自定义字符串处理程序,不能进行输出缓存处理.IIS 实例 ID 为"1772638466", URL 为"http://XXXX.XXX.XXX/EnglishWorld/Default.aspx". 有关更多信息,请参阅在 http://go.microsoft.com/fwlink/events.asp 的帮助和支持中心. 在系统日志大片出现(除了URL不同),但貌似对系统没什么影响,能正常使用. 此问题不会影响正常使用,但日志很快就满了

ASP.NET 2.0中的页面输出缓存_实用技巧

静态页面全部内容保存在服务器内存中.当再有请求时,系统将缓存中的相关数据直接输出,直到缓存数据过期.这个过程中,缓存不需要再次经过页面处理生命周期.这样可以缩短请求响应时间,提高应用程序性能.很显然,页面输出缓存适用于不需要频繁更新数据,而占用大量时间和资源才能编译生成的页面.对于那些数据经常更新的页面,则不适用.默认情况下,ASP.NET 2.0启用了页面输出缓存功能,但并不缓存任何响应的输出.开发人员必须通过设置,使得某些页面的响应成为缓存的一部分. 设置页面输出缓存可以使用以下两种方式:一

ASP.NET 4中的可扩展输出缓存(可以缓存页面/控件等)_实用技巧

输出缓存的前世今生 ASP.NET 1.0引入输出缓存的概念,这使得开发者可以缓存页面.控件.控制器以及HTTP响应的输出到内存中.在后续的Web请求,ASP.NET就可以使用缓存中的内容更快响应. ASP.NET的输出缓存系统足够灵活,使得我们可以根据不同的查询字符串或者表单post参数来缓存不同版本的内容.例如test.aspx?category=Vegerable 和 test.aspx?category.aspx?category=Meat.它也允许我们根据浏览器类型或者用户语言偏好来缓

ASP.NET缓存全解析2:页面输出缓存

ASP.NET缓存全解析文章索引 ASP.NET缓存全解析1:缓存的概述 ASP.NET缓存全解析2:页面输出缓存 ASP.NET缓存全解析3:页面局部缓存 ASP.NET缓存全解析4:应用程序数据缓存 ASP.NET 缓存全解析5:文件缓存依赖 ASP.NET 缓存全解析6:数据库缓存依赖 ASP.NET 缓存全解析7:第三方分布式缓存解决方案 Memcached和Cacheman 页面输出缓存是最为简单的缓存机制,该机制将整个ASP.NET页面内容保存在服务器内存中.当用户请求该页面时,系统

ASP.NET中如何对页面输出缓存

  最简单的缓存机制,把整个Aspx页面保存在服务器端内存中,用户请求页面时,直接从服务器端内存中提取数数据,不在经历页面的生命周期.主要用于不经常更新和修改,而在第一次编译是时要经过大量处理的数据.页面输出缓存是缓存的整个页面.     使用很简单<%@ OutPutCache Duration="60" VaryByParam="none"%>     Duration:缓存时间     VaryByParam:通过参数来更新缓存的内容     还有

asp.net 页面输出缓存_实用技巧

主要用于不经常更新和修改,而在第一次编译是时要经过大量处理的数据.页面输出缓存是缓存的整个页面 使用很简单<%@ OutPutCache Duration="60" VaryByParam="none"%> Duration:缓存时间 VaryByParam:通过参数来更新缓存的内容 还有其他的一些属性 CacheProfile:调用WebConfig中的缓存时间 例如:WebCofig中 复制代码 代码如下: <system.web> &l