ASP.Net缓存总结及分析
2012-06-30 10:48:36 来源:WEB开发网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类是基类,其他两个类都是从该类继承。
- ››ASP.NET及JS中的cookie基本用法
- ››ASP.NET获取MS SQL Server安装实例
- ››asp.net实现调用百度pai 在线翻译英文转中文
- ››ASP.NET页面选项进行提示判断
- ››Asp.net定时执行程序
- ››ASP.NET中利用DataList实现图片无缝滚动
- ››ASP.NET验证控件RequiredFieldValidator
- ››ASP.NET中使用System.Net.Mail发邮件
- ››ASP.NET中获取用户控件中控件的ID
- ››ASP.NET中FileBytes写成文件并存档
- ››asp获取毫秒数
- ››asp.net报“INSERT INTO 语句的语法错误解决
更多精彩
赞助商链接