`
布谷鸟20080122
  • 浏览: 9365 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

aspx.net慎用OutputCache页面缓存

    博客分类:
  • C#
阅读更多
微软的IIS 6.0提供了全新的页面缓存机制,我们只需要在一个.aspx文件中增加OutputCache设置,代码如下:

<%@ OutputCache Duration="60" VaryByParam="*"%>

上面的设置表示:缓存1分钟,根据不同的查询字符串更新缓存。
Location使用的是默认值Any,也就是可以在浏览器、代理服务器、Web服务器三个地方进行缓存。

页面缓存技术带来的好处是:

1 性能——将相应数据存储起来以避免数据的重复创建、处理和传输,可有效提高性能。比如将不改变的数据缓存起来,例如国家列表等,这样能明显提高web程序的反应速度;
2 稳定——同一个应用中,对同一数据、逻辑功能和用户界面的多次请求时经常发生的。当用户基数很大时,如果每次请求都进行处理,消耗的资源是很大的浪费,也同时造成系统的不稳定。例如,web应用中,对一些静态页面的呈现内容进行缓存能有效的节省资源,提高稳定性。而缓存数据也能降低对数据库的访问次数,降低数据库的负担和提高数据库的服务能力;
3 可用——有时,提供数据信息的服务可能会意外停止,如果使用了缓存技术,可以在一定时间内仍正常提供对最终用户的支持,提高了系统的可用性。

然而,这样的使用会带来两个严重的后果:

(1)如果某用户以 wap 方式浏览网站,而正好遇到需要更新缓存;结果可想而知;需要特别注意;
(2)与页面压缩技术,如果IIS启用"动态内容压缩",您将得到不可预知的结果。
(3)可能成为黑客的一种攻击手段;

解决之道:
使用 C# 中的 Cache 自行管理缓存信息,而不依赖于 OutputCache。
分享到:
评论

相关推荐

    asp.net缓存(页面输出缓存和应用程序缓存)

    这将缓存页面1小时(3600秒),并且每次参数变化都会生成新的缓存副本。 **应用程序缓存** 应用程序缓存(又称为内存缓存)则用于存储对象或数据,这些数据可以是数据库查询结果、计算结果或其他任何需要频繁访问但...

    ASP_NET中Web页面缓存技术探讨

    局部页面缓存用于缓存页面中的一部分内容。这在某些情况下非常有用,比如页面的某一部分内容变化较慢或者需要从数据库中获取,而其他部分更新较为频繁。 **2.1 实现局部页面缓存** 实现局部页面缓存通常涉及将需要...

    ASP.NET在响应中禁止缓存

    6. 避免使用OutputCache指令:在页面或部分视图上,避免使用`OutputCache`指令或配置,这样整个页面就不会被缓存。 综上所述,禁止ASP.NET响应中的缓存主要通过设置HTTP头部信息实现,同时结合其他方法确保内容不被...

    ASP.NET缓存剖析

    在ASP.NET中,还有页面输出缓存API,它提供了一组方法和属性,用于控制何时以及如何缓存页面内容。开发者可以通过设置`OutputCache`指令来实现页面级别的缓存配置,也可以利用`HttpCachePolicy`类进行更细粒度的控制...

    充分利用ASP.NET的三种缓存提高站点性能

    ASP.NET 提供了三种主要形式的缓存:页面级输出缓存、用户控件级输出缓存(或称为片段缓存)和缓存 API。输出缓存和片段缓存的优点是非常易于实现,在大多数情况下,使用这两种缓存就足够了。而缓存 API 则提供了...

    ASP.NET 2.0中新增的缓存功能

    开发者可以通过`OutputCache`指令在页面级别或控件级别配置缓存策略,如缓存时间、依赖项等。 2. **Partial Page Caching**:部分页面缓存允许开发者只缓存网页的某些部分,而不是整个页面。这在页面有动态和静态...

    asp.net缓存技术

    OutputCache 是 ASP.NET 中一种重要的缓存机制,用于缓存页面输出。它可以避免服务器频繁地生成相同内容的页面,从而极大地提高了网站的性能。 ##### 1. **基本配置** 在 ASP.NET 页面中使用 OutputCache,可以...

    ASP.NET 页面/数据库缓存实例

    - `Cache_Sql.aspx.designer.cs` 和 `Cache_Page.aspx.designer.cs` 文件是 ASP.NET 自动为每个 `.aspx` 页面生成的代码隐藏文件,包含与页面控件相关的 C# 代码,如声明控件变量、初始化事件等。它们通常不需要...

    asp.net2.0缓存

    ASP.NET 2.0还引入了部分缓存,允许只缓存页面的一部分,比如可以单独缓存导航菜单,而其他动态内容则按需生成。这提高了缓存的灵活性,并优化了资源利用。 此外,`System.Web.Caching`命名空间提供了许多缓存相关...

    一个简易实现ASP.NET网页静态数据Static Data 进行缓存Cache 的程序例子

    此外,ASP.NET还提供了`OutputCache`指令和`OutputCacheProvider`接口,用于页面级别的输出缓存。输出缓存会保存整个HTTP响应,避免重复生成相同的内容。这对于那些对数据库依赖较少且内容不会频繁改变的页面特别...

    页面缓存和清除页面缓存

    在ASP.NET开发中,页面缓存是提升网站性能的关键技术之一。它允许我们将频繁访问的网页数据存储在服务器的内存中,以便后续请求时能够快速响应,减少对数据库的访问和处理时间。C#作为ASP.NET的主要编程语言,提供了...

    ASP.NET SQL数据缓存例子

    在`WebSite4`项目中,可能会在Web.config文件中配置页面的输出缓存策略,或者在代码中使用`OutputCache`指令。 4. **SqlCacheDependency**:这是一种高级的缓存依赖,它直接关联到SQL Server的某个表或查询。当关联...

    asp.net 缓存的各种方法

    页面输出缓存的启用是在aspx页面的顶部添加`&lt;%@ OutputCache&gt;`指令。 例如: ```html &lt;%@ OutputCache Duration="60" VaryByParam="none" %&gt; ``` 这里的`Duration`属性定义了缓存有效期,以秒为单位。在这个例子中...

    ASP.NET_缓存技术

    4. 指定部分页面缓存:可以只缓存页面的一部分,例如某个区域或者某个控件。 三、缓存的工作原理 ASP.NET缓存工作流程如下: - 请求到达服务器时,系统首先检查是否已有缓存数据。 - 如果找到,直接返回缓存数据,...

    概述ASP.NET缓存机制

    部分页缓存则允许单独缓存页面的特定区域,如使用`@OutputCache`指令的子元素。 使用页输出缓存的例子如下: ```csharp &lt;%@ OutputCache Duration="60" VaryByParam="none" %&gt; ``` 这将使页面在60秒内被缓存,且不...

    OutputCacheasp.net页面缓存技术.docx

    ASP.NET的OutputCache技术是用来优化Web应用程序性能的关键组件,它通过缓存页面的输出来减少对服务器资源的需求,提高响应速度。OutputCache指令是实现页面缓存的核心元素,其主要特性包括Duration、Location、...

Global site tag (gtag.js) - Google Analytics