WEB开发网
开发学院WEB开发ASP.NET ASP.Net缓存总结及分析 阅读

ASP.Net缓存总结及分析

 2012-06-30 10:48:36 来源:WEB开发网   
核心提示:PageLoad:PartialCachingControl cacheme=(PartialCachingControl)Page.LoadControl("test.ascx");Cacheme.CachePolicy.SetExpires(DateTime.Now.AddSeconds(10)
PageLoad:
PartialCachingControl cacheme=(PartialCachingControl)Page.LoadControl("test.ascx");
Cacheme.CachePolicy.SetExpires(DateTime.Now.AddSeconds(10));
PlaceHolder1.Controls.Add(cacheme);
Lable1.Text=cacheme.CachePolicy.Duration.ToString();

3.使用DataSource缓存

SqlDataSource、ObjectDataSource、XmlDataSource控件都包括了用于缓存DataSource承载的属性,好处是数据源控件可以在数据更新时自动重新载入数据。并且可以在多个页面间共享相同的数据,通过一些属性的组合来识别:SelectCommand、SelectParameters、ConnectionString。如果属性相同,即共享相同的缓存数据。

通过设置属性设置缓存过期策略

包括绝对缓存(EnableCaching="True" CacheDuration=“xxx”)和Sliding缓存(EnableCaching="True" CacheExpirationPolicy="Sliding" CacheDuration=“xxx”)

使用ObjectDataSource控件缓存

通过设置控件的EnableCaching、CacheExpirationPolicy、CacheDuration属性以及SelectMethod所制定的方法名来完成。

使用XmlDataSource控件缓存

设置DataFile属性创建一个文件依赖。

创建数据源控件键值依赖

操作步骤
1、设置数据源控件的CacheKeyDependency属性(key);
2、在Global.asax创建初始化的(key)缓存项目。代码如下:
Void Application_Start(Object Sender,EventArgs e)
{
HttpContext context=HttpContext.Current;
context.Cache.Insert(
"key",DateTime.Now,null,DateTime.MaxValue,Cache.NoSlidingExpiration,CacheItemPriority.NotRemovable,null
);
}
3、在用于更改数据的页面上移除缓存项目(key);
如在DetailsView控件的ItemInserted事件中重新插入缓存项目,此时每个依赖于这个键值(key)的DataSource会自动重新载入数据,代码如下:
protected void DetailsView_ItemInserted(object sender,DetailsViewInsertedEventArgs e)
{
Cache.Insert("key",Datetime.Now);
}
注:以上key值采用当前时间并非必须。

4.Cache对象

几乎可以给缓存添加任何对象,例如,可以添加自定义控件,DataSet,DataTable,ArrayList和List到缓存。注意:使用从缓存中返回的任何项目,应该总是要检查项目是否为空,如果一个项目已经被删除了,则当将来试图从缓存中读取时,就会返回null。
详细信息查看msdnCache 成员
添加数据缓存到Cache对象示例代码:
void Page_Load()
{
DataTable dt=(DataTable)Cache["dtkey"];
if(dt==null)
{
dt=getdtFromDB(); //此处调用方法从数据库中返回数据项DataTable
Cache.Insert("dtKey",dt,null,DateTime.Now.AddHours(1),Cache.NoSlidingExpiration); //此处使用绝对过期策略添加项目
}
GridView1.DataSource=dt;
GridView1.DataBind();
}
private DataTable getdtFromDB()
{
//略......
}

使用依赖添加项目

Asp.net Framework包括三种缓存依赖
1、CacheDependency——用于创建一个文件依赖或缓存键值依赖。
2、SqlCacheDependency——用于创建一个对于Microsoft SQL Server数据库表或SQL Server 2005数据库查询的依赖。
3、AggregateCacheDependency——用于使用多个CacheDependency对象创建依赖,例如,可以用该对象组合文件和Sql依赖。

CacheDependency类是基类,其他两个类都是从该类继承。

上一页  1 2 3 4 5  下一页

Tags:ASP Net 缓存

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接