ASP.NET中如何通过代码清楚应用程序的页面缓存和数据缓存

解决方案 »

  1.   

    建议楼主好好看看微软关于asp.net缓存的msdn说明。
      

  2.   

    楼主给你些资料把。1.页面缓存
    http://www.cnblogs.com/guanfei/archive/2007/07/29/835497.html
    http://msdn.microsoft.com/zh-cn/library/system.web.ui.outputcachelocation.aspx
    http://msdn.microsoft.com/zh-cn/library/hdxfb6cy.aspx  MSDN2.数据库缓存
    http://www.asp.net/learn/data-access/tutorial-61-vb.aspx
    http://www.cnblogs.com/webabcd/archive/2007/02/15/651419.html
    http://msdn.microsoft.com/zh-cn/library/system.web.caching.cacheitempriority.aspx
      

  3.   

    using System.Web.Caching;赋值:
    Cache["first"] = "first Item";插入:
    Cache.Insert("Second", "Second Item");移除:
    Cache.Remove("first");
      

  4.   

    ASP.NET提供了两种基本的缓存机制来提供缓存功能。一种是应用程序缓存,它允许开发者将程序生成的数据或报表业务对象放入缓存中。另外一种缓存机制是页输出缓存,利用它,可以直接获取存放在缓存中的页面,而不需要经过繁杂的对该页面的再次处理。
    应用程序缓存其实现原理说来平淡无奇,仅仅是通过ASP.NET管理内存中的缓存空间。放入缓存中的应用程序数据对象,以键/值对的方式存储,这便于用户在访问缓存中的数据项时,可以根据key值判断该项是否存在缓存中。
    放入在缓存中的数据对象其生命周期是受到限制的,即使在整个应用程序的生命周期里,也不能保证该数据对象一直有效。ASP.NET可以对应用程序缓存进行管理,例如当数据项无效、过期或内存不足时移除它们。此外,调用者还可以通过CacheItemRemovedCallback委托,定义回调方法使得数据项被移除时能够通知用户。
    在.Net Framework中,应用程序缓存通过System.Web.Caching.Cache类实现。它是一个密封类,不能被继承。对于每一个应用程序域,都要创建一个Cache类的实例,其生命周期与应用程序域的生命周期保持一致。我们可以利用Add或Insert方法,将数据项添加到应用程序缓存中
      

  5.   

    1,手动移除
    2,设置自动超时时间
    3,设置事件出触发CACHE过期
      

  6.   

     (1)   服务端
                Response.Buffer = true;
                Response.ExpiresAbsolute = System.DateTime.Now.AddSeconds(-1);
                Response.Expires = 0;
                Response.CacheControl = "no-cache";
                Response.AddHeader("Pragma", "No-Cache");
        (2)   客户端
            <HEAD>
            <META HTTP-EQUIV="Pragma" CONTENT="no-cache">
            <META HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
            <META HTTP-EQUIV="Expires" CONTENT="0">
            </HEAD>
      

  7.   

    相对于应用程序缓存而言,页输出缓存的应用更为广泛。它可以通过内存将处理后的ASP.NET页面存储起来,当客户端再一次访问该页面时,可以省去页面处理的过程,从而提高页面访问的性能,以及Web服务器的吞吐量。例如,在一个电子商务网站里,用户需要经常查询商品信息,这个过程会涉及到数据库访问以及搜索条件的匹配,在数据量较大的情况下,如此的搜索过程是较为耗时的。此时,利用页输出缓存就可以将第一次搜索得到的查询结果页存储在缓存中。当用户第二次查询时,就可以省去数据查询的过程,减少页面的响应时间。
    页输出缓存分为整页缓存和部分页缓存。我们可以通过@OutputCache指令完成对Web页面的输出缓存。它主要包含两个参数:Duration和VaryByParam。Duration参数用于设置页面或控件进行缓存的时间,其单位为秒。如下的设置表示缓存在60秒内有效:
    <%@ OutputCache Duration=“60“ VaryByParam=“none“ %>
    只要没有超过Duration设置的期限值,当用户访问相同的页面或控件时,就可以直接在缓存中获取。
    使用VaryByParam参数可以根据设置的参数值建立不同的缓存。例如在一个输出天气预报结果的页面中,如果需要为一个ID为txtCity的TextBox控件建立缓存,其值将显示某城市的气温,那么我们可以进行如下的设置:
    <%@ OutputCache Duration=”60” VaryByParam=”txtCity” %>
    如此一来,ASP.NET会对txtCity控件的值进行判断,只有输入的值与缓存值相同,才从缓存中取出相应的值。这就有效地避免了因为值的不同而导致输出错误的数据。
    利用缓存的机制对性能的提升非常明显。通过ACT(Application Center Test)的测试,可以发现设置缓存后执行的性能比未设置缓存时的性能足足提高三倍多。
      

  8.   

    Cache cache=HttpRuntime.Cache; 
    int  Count=cache.Count; 
    IDictionaryEnumerator CacheEnum=cache.GetEnumerator(); 
    while(CacheEnum.MoveNext()) 
      { 
      string cacheItem=Server.HtmlEncode(CacheEnum.Key.Tostring()); 
      cache.Remove(cacheItem); 
      }