All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
ExtJS与.NET结合开发实例(Grid之批量删除篇)_[Asp.Net教程]
如何找出相同月日记录_[SQL Server教程]
客户端回调实现gridView无刷新分页_.net资料_编程技术
C#入门代码_[Asp.Net教程]
ASP.NET技巧:repeater实现多列显示_.net资料_编程技术
phpWind中配制伪静态的步骤_[PHP教程]
SQL语法总结_mssql学习_编程技术
理解C#值类型与引用类型_[Asp.Net教程]
浅谈几个SQL的日志概念_[SQL,Server教程]
SQL,Server,2005升级的十个步骤详解_[SQL,Server教程]
Reading number is top 10 pictures
The hot big eye big breast beauty3
In 2013 hercules Arnold classic2
这才叫绝色美女2
乳娘帕梅拉安德森2
中国女孩大胆自拍,显露完美身材
Ashlynn Brooke photograph of a group4
六种更聪明的工作方法
大四女生借债隆胸成功
Sora aoi in China1
到底是谁撞谁呀?
Download software ranking
C++教程第四版
Sora aoi, the maid, students' uniforms
Boxer vs Yellow3
The Bermuda triangle2
C++编程教程第三版
Macromedia Dreamweaver 8
C#编程思想
Boxer's Top ten classic battle10
Boxer's Top ten classic battle3
Jinling thirteen stock
qq published in(发表于) 2014/7/9 1:39:07 Edit(编辑)
asp.net2.0页面数据缓存的应用实例

asp.net2.0页面数据缓存的应用实例

asp.net2.0页面数据缓存的应用实例

页面数据缓存

应用程序数据缓存提供了一种编程方式,可通过键/值将任意数据存储在内存中。使用应用程序缓存与使用应用程序状态类似。但是,与应用程序状态不同的是,应用程序数据缓存中的数据是容易丢失的,即数据并不是在整个应用程序生命周期中都存储在内存中。

应用程序数据缓存的优点是由ASP.NET管理缓存,它会在项过期、无效或内存不足时移除缓存中的项,还可以配置应用程序缓存,以便在移除项时通知应用程序。

ASP.NET中提供了类似于Session的缓存机制,即页面数据缓存。利用数据缓存,可以在其中保存各种对象。对于各个应用程序来说,数据缓存只是在应用程序内共享,并不能在应用程序间进行共享。Cache类用于实现Web应用程序的缓存,在Cache中存储数据最简单的方法如下:

Cache["Key"]=Value;

从缓存中取数据时,需要先判断缓存中是否有内容,其方法如下:

Value=(string)Cache["key"];

If(Value!=null)

{

//do something

}

注意:从Cache中得到的对象是一个object类型的对象,因此在通常情况下,需要进行强制类型转换。

Cache类有两个很重要的方法,Add和Insert方法,其语法格式如下:

public Object Add[Insert] (

string key,

Object value,

CacheDependency dependencies,

DateTime absoluteExpiration,

TimeSpan slidingExpiration,

CacheItemPriority priority,

CacheItemRemovedCallback onRemoveCallback

)

参数说明如下所示。

key :用于引用该项的缓存键。

value:要添加到缓存的项。

dependencies:该项的文件依赖项或缓存键依赖项,当任何依赖项更改时,该对象即无效,并从缓存中移除。如果没有依赖项,则此参数可以设置为null。

absoluteExpiration:过期的绝对时间。

slidingExpiration:最后一次访问所添加对象时与该对象过期时之间的时间间隔。

priority:缓存的优先级,由CacheItemPriority枚举表示。缓存的优先级共有6种,从高到低依次是NotRemoveable、High、AboveNormal、Normal、BelowNormal和Low。

OnRemoveCallback:在从缓存中移除对象时所调用的委托(如果没有,可以设置为null)。当从缓存中删除应用程序的对象时,它将会被调用。

Insert方法声明与Add方法类似,但Insert方法为可重载方法。其结构如表1所示。



表1 Insert重载方法列表

Insert方法中,CacheDependency是指依赖关系,DateTime是有效时间,TimeSpan是创建对象的时间间隔。

下面通过示例来讲解Insert方法的使用。

例如,将文件中的xml数据插入缓存,在以后请求时无需从文件读取该数据。Cache Dependency的作用是确保缓存在文件更改后立即到期,以便可以从文件中提取最新数据,重新进行缓存。如果缓存的数据来自若干个文件,还可以指定一个文件名的数组。代码如下:

Cache.Insert("key", myXMLFileData, new

System.Web.Caching.CacheDependency(Server.MapPath("users.xml")));

例如,插入键值为 key 的第二个数据块(取决于是否存在第一个数据块)。如果缓存中不存在名为key的键,或者与该键相关联的项已到期或被更新,那么dependentkey 的缓存条目将到期。代码如下:

Cache.Insert("dependentkey", myDependentData, new

System.Web.Caching.CacheDependency(new string[] {}, new string[]

{"key"}));

下面是一个绝对到期的示例,此示例将对受时间影响的数据缓存1min,1min过后,缓存将到期。

注意:绝对到期和滑动到期不能一起使用。

程序代码如下:

Cache.Insert("key", myTimeSensitiveData, null,

DateTime.Now.AddMinutes(1), TimeSpan.Zero);

下面是一个绝对滑动到期的示例,此示例将缓存一些频繁使用的数据。数据将在缓存中一直保留,除非数据未被引用的时间达到了1min。代码如下:

Cache.Insert("key", myFrequentlyAccessedData, null,

System.Web.Caching.Cache.NoAbsoluteExpiration,

TimeSpan.FromMinutes(1));




添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.