Cache笔记

1.页面输出缓存
   1>.在aspx页面顶部加上下面语句 ,则设置整个页面进行输出缓存 
       <%@ OutputCache Duration="30" VaryByParam="none" %>
      Duration:设置缓存的有效时间;
      VaryByParam:根据Request请求的参数进行改变缓存页面
      VaryByControl:则根据页面中控件属性的改变进行缓存页面
eg:       <%@ OutputCache Duration="30" VaryByParam="id" %>
      则当请求的URL为 http://localhost/default.aspx?id=1 页面进行缓存,则如果请求URL地址  http://localhost/default.aspx?id=2 中ID数值进行改变 ,则页面马上进行重新缓存。url地址为 http://localhost/default.aspx?id=2&name=abc 则设置成VaryByParam="id;name";
 2>. 用户控件进行缓存[WebUserControl.ascx]
           在建立WebUserControl.ascx 用户控件时候,我们可以把单独不常改变数据的用户控件进行缓存.
使用方法:在.ascx文件的顶部加上"<%@ OutputCache Duration="10" VaryByParam="none" %>" 即可
 3>.页面输出缓存进行局部取消缓存
     页面局部取消缓存我们使用控件Substitution :
        <asp:Substitution ID="Substitution1" runat="server" MethodName="yourMethod" />
其中MethodName用来设置不缓存局部获取字符串方法。
ContractedBlock.gif ExpandedBlockStart.gif Code
    protected static string yourMethod(HttpContext context)
    {
        
return DateTime.Now.ToString();
    }
    
/*
     注意: 
     * 此方法必须为静态方法 
     * 参数类型必须为HttpContext
     * 返回类型必须为字符串!
 
    */
 
2.程序Object 对象进行缓存     
   在项目开发中 ,我们有时候 通过抽象工厂模式拓展项目灵活性。在可以通过配置文件去对逻辑层中的模块进行缓存

   
ContractedBlock.gif ExpandedBlockStart.gif Code
/// <summary>
    
/// 获取被缓存的对象
    
/// </summary>
    
/// <param name="valueName">对象key</param>
    
/// <returns></returns>
    public static Object getValue(string valueName)
    {
        System.Web.Caching.Cache objcache 
= HttpRuntime.Cache;
        
return objcache[valueName];
 
    }
    
/// <summary>
    
/// 插入被缓存的对象
    
/// </summary>
    
/// <param name="obj">需要缓存的对象</param>
    
/// <param name="valueName">对象key</param>
    public static void insertValue(object obj,string valueName)
    {
        System.Web.Caching.Cache objcache 
= HttpRuntime.Cache;
        objcache.Insert(valueName, obj);
         

    }
    
/// <summary>
    
/// 插入对文件依赖的缓存对象。
    
/// 被依赖的文件修改 则缓存对象自动清除
    
/// </summary>
    
/// <param name="obj"></param>
    
/// <param name="valueName"></param>
    
/// <param name="filePath">文件的相对路径</param>
    public static void insertValue(object obj, string valueName, string filePath)
    {
        System.Web.Caching.Cache objcache 
= HttpRuntime.Cache;
        objcache.Insert(valueName,obj,
new CacheDependency(HttpContext.Current.Server.MapPath(filePath)));

 
    }
   
/// <summary>
    
/// 移除被缓存的对象
   
/// </summary>
   
/// <param name="valueName"></param>
    public static void removeValue(string valueName)
    {
        System.Web.Caching.Cache objCache 
= HttpRuntime.Cache;
        objCache.Remove(valueName);
    }

         参考: http://ltp.cnblogs.com/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值