我要把首页 <%@ OutputCache Duration="60" VaryByParam="none"%>1? 首页里有一个用户控件:
  我要问 这个用户控件是要单独 OutputCache 一下吗? 还是首页上的缓冲就包含了..求解2? 首页上还有一个显示用户登陆状态的div,怎么让它变起来不缓冲(我使用 session 来判断了)

解决方案 »

  1.   

    利用用户控件将页面分段,在ascx文件中写入缓存的语句,而不在aspx文件中写缓存语句,这样ASP.NET就可以只缓存ascx片断的输出了
    参考http://www.cnblogs.com/Elong/archive/2008/06/11/449129.html
    http://www.cnblogs.com/caicaihui/archive/2008/06/29/1232099.html
      

  2.   

    遇到这个问题时,应掌握以下个基本原则:一是ASP.NET允许在页面和页面的用户控件中同时使用@ OutputCache指令设置缓存,并且允许设置不同的缓存过期时间值。二是如果页面输出缓存过期时间长于用户控件输出缓存过期时间,则页面的输出缓存持续时间优先。例如,如果页面输出缓存设置为100秒,而用户控件的输出缓存设置为50秒,则包括用户控件在内的整个页将在输出缓存中存储100秒,而与用户控件较短的时间设置无关。三是如果页面输出缓存过期时间比用户控件的输出缓存过期时间短,则即使已为某个请求重新生成该页面的其余部分,也将一直缓存用户控件直到其过期时间到期为止。例如,如果页面输出缓存设置为50秒,而用户控件输出缓存设置为100秒,则页面其余部分每到期两次,用户控件才到期一次。
      

  3.   

    每一个ascx可以单独使用OutputCache,我基本上是使用这个方法。而不是在aspx上缓存。如果在aspx上缓存,实际上你还可以使用VaryByControl、VaryByCusmtom。对于局部取消缓存,参考asp.net产品经理scott的博客文章http://blog.joycode.com/scottgu/archive/2006/11/29/88242.aspx
      

  4.   

    http://dev.yesky.com/msdn/498/2442998.shtml
      

  5.   

    在页面上已经缓存但是支持用每一个ascx可以单独使用OutputCache,进行缓存
      

  6.   

    1.Substitution控件应用   为提高应用程序性能,可能会缓存整个ASP.NET页面,同时,可能需要根据每个请求来更新页面上特定的部分。例如,可能要缓存页面的很大一部分,需要动态更新该页上与时间或者用户高度相关的信息。在这种情况下,推荐使用Substitution控件。Substitution控件能够指定页面输出缓存中需要以动态内容替换该控件的部分,即允许对整页面进行输出缓存,然后,使用Substitution控件指定页中免于缓存的部分。需要缓存的区域只执行一次,然后从缓存读取,直至该缓存项到期或被清除。动态区域,也就是Substitution控件指定的部分,在每次请求页面时都执行。Substitution控件提供了一种缓存部分页面的简化解决方案。  Substitution控件继承自Control基类,其声明代码如下所示:Substitution控件声明代码 
    <asp:substitution id="Substitution1" methodname=" " runat="Server">
    </asp:substitution> http://www.cnblogs.com/Joshualang/archive/2007/01/24/OutputCache.html
    看这里吧,相当有帮助
      

  7.   

    Substitution控件能够指定页面输出缓存中需要以动态内容替换该控件的部分,即允许对整页面进行输出缓存,然后,使用Substitution控件指定页中免于缓存的部分。需要缓存的区域只执行一次,然后从缓存读取,直至该缓存项到期或被清除。动态区域,也就是Substitution控件指定的部分,在每次请求页面时都执行。
      

  8.   

    每个aspx可以单独用一个OutputCache的
    <%@ OutputCache Duration="120" VaryByParam="参数一;参数二"%> 
    可以通过VaryByParam来改变缓存
      

  9.   

    一是ASP.NET允许在页面和页面的用户控件中同时使用@ OutputCache指令设置缓存,并且允许设置不同的缓存过期时间值。二是如果页面输出缓存过期时间长于用户控件输出缓存过期时间,则页面的输出缓存持续时间优先。例如,如果页面输出缓存设置为100秒,而用户控件的输出缓存设置为50秒,则包括用户控件在内的整个页将在输出缓存中存储100秒,而与用户控件较短的时间设置无关。三是如果页面输出缓存过期时间比用户控件的输出缓存过期时间短,则即使已为某个请求重新生成该页面的其余部分,也将一直缓存用户控件直到其过期时间到期为止。例如,如果页面输出缓存设置为50秒,而用户控件输出缓存设置为100秒,则页面其余部分每到期两次,用户控件才到期一次。