SPS中WebPart加缓存

在企业级应用中,特别是对大数据量,大访问量的系统中,Cache是非常重要的。
最近一个项目数据量非常之大,访问量也很大,这就要系统应对考验了。加缓存是非常重要的一步
由于此系统SPS+MCMS开发,做多门户的系统,在SPS中写WEBPART大家都知道吧,但是我相信缓存大家
可能都没有加过。在网上查了很多资料,都没有找着相关的代码,于是就查其API吧。。
一看,其实非常简单,而且效率非常之高

WebPart有一个缓存类Microsoft.SharePoint.Portal.WebControls.CacheableWebPart
,直接从该类中派生出来,然后在RenderWebpart时先设置缓存时间,CacheKEY可以设置根据不同的参数来加载不一样的缓存

 1protected override void RenderWebPart(HtmlTextWriter output)
 2{
 3 
 4
 5 this.CacheTimeout=int.Parse(System.Configuration.ConfigurationSettings.AppSettings["CacheTimeOut"]);
 6 //this.CachePerUser=true;   true只对某一用户有效,false 所有用户有效
 7  
 8 if(!RenderCachedOutput(ref output))  //输出缓存,如果不成功的话,就重新加载
 9 {
10  this.RenderMyWebPart(output); //实际的output内容
11  StoreCachedOutput(ref output);//加载后将其缓存起来
12 }

13}

14
15protected override string CacheKey
16{
17 get
18 {
19  if(Page.Request.QueryString["ChannelPath"]!=null||Page.Request.QueryString["ChannelPath"]!="")
20  {
21   return "New"+Page.Request.QueryString["ChannelPath"];
22  }

23  return "VidmsCache";
24 }

25}

26
27
posted on 2006-07-05 16:04  孤独剑  阅读(1181)  评论(2编辑  收藏  举报