CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

如何缓存TreeView,Menu之类的控件,以加快访问速度

楼主UDOBE(BENSON)2005-07-03 20:39:43 在 .NET技术 / ASP.NET 提问

大家都知道,如果Menu是从数据库读取数据进行构建的话,会花不少时间,  
  有没有办法,把构建好的Menu放到APPLICATION   或CACHE   中去,下次用的时候就从APPLICATION   或CACHE   中加载进来,就会快很多,但我没有试成功,  
   
  请高手出招  
   
  以下是我的源码  
  if   (Application["menu2"]==null)  
  {  
          FreeControl.Web.BuildMenu   bmu=new   FreeControl.Web.BuildMenu();  
          bmu.SelectFromTableName="TreeNode";  
          bmu.NodeNavigateUrl="Products.aspx";  
          bmu.DbConnection=new   OleDbConnection(FreeControl.Data.ConnectionString.ConString);  
          this.GiftMenu=bmu.BuildMenubar(this.GiftMenu,2));  
          Application["menu2"]=this.GiftMenu;  
  }  
  else  
  {  
        this.GiftMenu=(ComponentArt.Web.UI.Menu)Application["menu2"];  
        //这行代码有运行,但是菜单就不见了  
   
   
  } 问题点数:100、回复次数:12Top

1 楼xxrl(孔曰成仁,孟曰取媳妇-->她太有才了)回复于 2005-07-03 21:36:20 得分 0

.NET的缓存机制   用不到么?Top

2 楼boytomato(深爱一人叫颖的女孩!)回复于 2005-07-03 21:41:34 得分 0

有必要吗..??Top

3 楼hackate(兰花开香入梦境,独思佳人亦飘然!!)回复于 2005-07-03 21:57:06 得分 0

用用户控件的换存,把他们放到用户控件是个方法Top

4 楼cuike519(I will be back!)回复于 2005-07-03 22:22:27 得分 0

菜单的展现要和页面的生命周期同步!  
   
  你可以缓存你的数据而不是整个菜单对象!Top

5 楼hedonister(冰戈)回复于 2005-07-03 22:25:54 得分 0

如何在ASP.NET中使用缓存Caching  
  http://www.cnblogs.com/hedonister/archive/2005/06/17/176065.htmlTop

6 楼UDOBE(BENSON)回复于 2005-07-04 13:53:22 得分 0

各位高手出招,有例子最好了,先谢了Top

7 楼UDOBE(BENSON)回复于 2005-07-05 23:12:03 得分 0

高手请出招Top

8 楼gyf19(秋天的云)回复于 2005-07-05 23:20:20 得分 0

我建议:如果系统常常用到TreeView,Menu之类的控件的话,可以Caching起来!!Top

9 楼superdullwolf(超级大笨狼,每天要自强,MVP)回复于 2005-07-20 11:48:32 得分 50

Cache     userControl或者数据  
   
   
   
  ///   <summary>  
  ///   generalUTL   的摘要说明。  
  ///   这里存放一些基本的辅助函数  
  ///   1,缓存相关的:设置,获取和清空,当数据发生更新的时候可以设置缓存,也可以直接清空缓存。  
  ///   </summary>  
  public   class   generalUTL  
  {  
  #region   缓存相关的。  
  ///   <summary>  
  ///   利用工厂模式设置缓存。  
  ///   </summary>  
  ///   <param   name="key"></param>  
  public   static   System.Data.DataTable   setCache(string   key)  
  {  
  System.Data.DataTable   dt=new   DataTable();  
  Type   t   =   Type.GetType("DreamZone.Core.sysCollection");  
  MethodInfo   method   =   t.GetMethod(key);  
  dt=(System.Data.DataTable)method.Invoke(null,null);  
  setCache(key,dt);    
  return   dt;  
  }  
  ///   <summary>  
  ///   直接利用key和dt设置。  
  ///   </summary>  
  ///   <param   name="key"></param>  
  ///   <param   name="dt"></param>  
  ///   <returns></returns>  
  public   static   System.Data.DataTable   setCache(string   key,System.Data.DataTable   dt)  
  {  
  //HttpContext.Current.Cache.Add(key,dt,null,DateTime.MaxValue,new   TimeSpan(0,0,1,0),CacheItemPriority.High,null);  
  HttpContext.Current.Cache.Add(key,dt,null,DateTime.MaxValue,new   TimeSpan(0,0,1,0),CacheItemPriority.High,null);  
  return   dt;  
  }  
  ///   <summary>  
  ///   从缓存中获取,如果为空设置缓存  
  ///   </summary>  
  ///   <param   name="key"></param>  
  ///   <returns></returns>  
  public   static   System.Data.DataTable   getCache(string   key)  
  {    
  System.Data.DataTable   dt=new   DataTable();  
  if(HttpContext.Current.Cache[key]!=null)  
  {  
  dt=(System.Data.DataTable)HttpContext.Current.Cache[key];    
  }  
  else  
  {    
  dt=   setCache(key);  
  }  
     
  return   dt;  
  }  
  ///   <summary>  
  ///   清空缓存  
  ///   </summary>  
  ///   <param   name="key"></param>  
  public   static   void   clearCache(string   key)  
  {  
  HttpContext.Current.Cache.Remove(key);    
  }  
  #endregion  
  Top

10 楼coveking(小草)回复于 2005-07-20 11:57:38 得分 50

我也在做treeview这方面,楼主可不可以留个联系方式方便交流Top

11 楼brando_beat(Eの懒龙)回复于 2005-07-20 12:14:36 得分 0

我也觉得是缓存数据、不是菜单Top

12 楼upshania(小姐,你喜欢吃青椒吗?)回复于 2005-07-20 12:19:39 得分 0

树的操作用JS来完成吧。。。  
   
  还有把状态视图设为false   不要向服务端回发。。。各种请求通过别的页面来处理服务端信息Top

相关问题

  • TREEVIEW控件
  • 求treeview控件
  • treeview控件
  • TreeView控件
  • 求TreeView控件
  • treeview问题.我的TreeView控件用localhost可以访问,但是用ip和机器名访问的时候都会出问题
  • TreeView控件问题
  • 关于treeview控件
  • 注册TreeView控件
  • TreeView控件刷新?

关键词

  • 控件
  • 数据
  • application
  • null
  • 缓存
  • bmu
  • giftmenu
  • freecontrol
  • dt
  • datatable

得分解答快速导航

  • 帖主:UDOBE
  • superdullwolf
  • coveking

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo