ASP.NET 2.0 缓存翻译草稿

asp.net|缓存

  命名空间: System.Web.Caching ,这个空间是ASP.NET的基础结构中的重要部分,比如:session就是存储在cache中的。

  Cache对象有两种级别的访问控制:public和private的。private是被系统组件保留使用的;只有public的才是留给程序员的接口,可以使用IEnumerable接口来枚举public状态下的数据。

  ASP.NET 提供了3中级别的cache:

  Page level---缓存整个页面;
  Page fragment---可以缓存诸如.ascs等控件,是页面的一部分缓存;
  Programmatic caching---通过public Cache API 编程缓存数据;

  在 ASP.NET 2.0 中page level 的缓存机制被扩展到支持依赖数据库的缓存。也就是可以把page level页面缓存数据和数据库表中的数据设置为依赖。当数据表中数据变动后page level的缓存就自动失效,这可就解决了page level缓存时间不好控制的难处。

  看个例子:

  在ASP.NET 1.x 中page level的代码:

<%@ outputcache duration=”3600” varybyparam=”ProdID” %>

  在ASP.NET 2.0 中的page level的代码:

<%@ outputcache duration=”3600” varybyparam=”ProdID”  sqldependency=”Northwind:Products” %>

  注意:虽然页面的缓存时间是3600秒,但是如果Northwind:Products表数据变动时,那么这个缓存就失效了。

  说明:sqldependency 是一个新增的属性,由2部分组成:数据源和表名,配置在:web.config中,详见相关文档。

  ASP.NET 2.0 还提供了SqlCacheDependency 和CacheDependency 两个缓存相关类。

时间: 2024-11-08 01:28:04

ASP.NET 2.0 缓存翻译草稿的相关文章

asp.net 2.0 缓存(理论篇)

asp.net|缓存     ASP.NET 2.0提供了一些新的用于提升程序性能的技术特性,其中,缓存技术是非常重要的一个特性,它提供了一种非常好的本地数据缓存机制,可以非常容易的定制属于数据缓从,从而有效的提高数据访问的性能. 缓存有一个不太容易克服的缺点,那就是数据过期的问题.最典型的情况是,如果将数据库表中的数据内容缓存到服务器内存中,当数据库表中的记录发生更改时,Web应用程序则很可能显示过期的.不准确的数据.对于某些类型的数据,即使显示的信息过期,影响也不会很大.然而,对于实时性要求

ASP.NET 2.0缓存技术探讨

本文介绍通过缓存来提高网页的执行效率. 1.ASP.NET Output Caching 当一个网页频繁被访问的时候,我们可以通过把整个网页缓存来提高执行效率.这样作的优点是,当用户再次访问这个网页的时候,被格式化好的HTML会被直接送显. 为什么会存在这种效果呢?我们通过ASP.NET的基本运行机制来解释这个问题.ASP.NET是一个动态的服务器,当用户从客户端提供一个请求的时候,那么服务端的IIS接受到请求,然后根据用户的提示执行相应的代码.执行代码之后生成一个结果.这个结果会被缓存成一个H

在ASP.NET 2.0中操作数据之五十八:在程序启动阶段缓存数据_自学过程

导言: 前面2章考察了在表现层和缓存层缓存数据.在第56章,我们探讨了在表现层设置ObjectDataSource的相关cache属性来缓存数据.在第57章,我们探讨了创建一个单独的分开的缓存层.这2章都是采用"应激装载"(reactive loading)的模式来缓存数据.该模式下,每次请求数据时,系统先检查其是否在内存,如果没有,则从数据源--比如数据库,来获取数据,然后将其存储在内存里.该模式的优势在于执行起来很容易:而缺点之一在于应"请求"(requests

在ASP.NET 2.0中操作数据之五十七:在分层架构中缓存数据_自学过程

导言: 正如前面章节所言,缓存ObjectDataSource的数据只需要简单的设置一些属性.然而,它是在表现层对数据缓存,这就与ASP.NET page页面缓存策略(caching policies)紧密的耦合(tightly couples)起来.我们对体系机构分层的原因之一便是打破这种耦合.拿业务逻辑层为例,将业务逻辑从ASP.NET页面脱离出来:而数据访问层将数据访问的细节ASP.NET页面脱离出来.从某种意义来说,将业务逻辑和数据访问细节脱离出来是首先,这样的话使系统更易读.易维护.易

在ASP.NET 2.0中操作数据之五十九:使用SQL缓存依赖项SqlCacheDependency_自学过程

导言: 在56和57章探讨的缓存技术使用的是基于时间的缓存周期,当过了某段时间后便将缓存数据从内存清除.当设置缓存时间为x秒时,数据在x秒内都是"新"的.当然,就像在60章谈到的那样,对静态数据来说,x可延伸到web应用程序的整个生命周期(lifetime). 当缓存数据时,基于时间周期的技术因为其易用性而常常被采用,不过又常常不那么完美.理想的状态是这样的:数据库数据还是应缓存在内存,直到源数据(underlying data)发生改变时才从内存清除.这样的话可以最大化的获取缓存带来

ASP.NET 2.0实现依赖Oracle的缓存策略

asp.net|oracle|策略|缓存 ASP.NET 2.0中的缓存提供了对SQL依赖项的支持,也就是说当SQL SERVER数据库中的表或行中的数据被更改后,缓存中的页面就失效,否则,页面输出可一直保留在缓存当中.这确实为程序员提供了方便.但微软一向很小家子气,只为使用自家产品SQL SERVER的程序员提供了方便,那些用Oracle数据库的ASP.NET程序员怎么办呢? 其实不用着急,因为ASP.NET 2.0中的缓存还提供了对文件依赖项的支持,也就是缓存依赖于某个文件,该文件被修改后,

ASP.NET 2.0的缓存技术简介

asp.net|缓存 由数据库驱动的Web应用程序,如果需要改善其性能,最好的方法是使用缓存功能.用户从数据库中检索数据,可能是Web应用程序中执行最慢的操作之一.因为其中涉及多个环节,例如,Web服务器.数据库服务器等.尤其是在用户比较多,检索的数据量比较大的情况下,会给包括用户在内的各个方面造成不小的困难.如果能够将数据库中的数据缓存到内存(也可以存储在其他场所),则无需在请求每个页面时都访问数据库.由于从内存中返回数据的速度始终比新提供的数据速度快,因而可以大大提供应用程序的性能. 缓存有

ASP.NET 2.0 中使用自定义缓存依赖

asp.net|缓存 在 ASP.NET 1.x 中,我们可以使用 CacheDependency 来实现缓存依赖策略,但由于这个类是 sealed 的,我们无法继承这个类来实现我们自己的策略.但是到了 ASP.NET 2.0,我们已经可以从这个类派生出自己的缓存依赖类了. 假定我们要设计一个页面,需要从博客园首页获取最新的贴子信息.为了提高性能,我们希望页面数据仅当博客园首页有更新时才重新生成,否则的话就直接从缓存中获取.如何实现? 一.设计 BlogCacheDependency 类 先分析

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

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