【问题标题】:Different output cache timeout for different usercontrols不同用户控件的不同输出缓存超时
【发布时间】:2011-08-25 12:46:25
【问题描述】:

我有几个用户控件,我希望有不同的输出缓存超时。

我尝试了以下方法但没有成功:

  • 设置缓存配置文件(显然只能在 aspx 页面上完成)。
  • 在代码隐藏中执行以下操作:

    Response.Cache.SetExpires(DateTime.Now.AddDays(OutputCaching.QuickTimeout))

    Response.Cache.SetCacheability(HttpCacheability.Public)

    Response.Cache.SetValidUntilExpires(true);

    Response.Cache.VaryByParams.IgnoreParams = true;

显然只有 <%@ OutputCache Duration="6000" VaryByParam="" %> 有效,但没有办法从 config- 或 appsettings 文件中获取持续时间吗?

【问题讨论】:

  • 简短回答是否定的。文档说用户控件不支持缓存配置文件

标签: asp.net outputcache


【解决方案1】:

根据this article备注,从技术上讲是可能的,但认为

HttpCacheability.Server = @OutputCache

而不是

HttpCacheability.Public

这是HttpCacheability 的文档,这将帮助您选择适合自己的选择。

另外我认为最好将代码放在 Page_Init 或 Page_PreInit 中,如下所示:

Private Sub Page_Init(sender As Object, e As System.EventArgs) Handles Me.Init
    Me.Response.Cache.SetCacheability(HttpCacheability.Server)
    Me.Response.Cache.SetExpires(Date.Now.AddMinutes(10))
    Me.Response.Cache.SetValidUntilExpires(True)
    Me.Response.Cache.VaryByParams.IgnoreParams = True
End Sub

问候,

【讨论】:

    猜你喜欢
    • 2011-03-26
    • 1970-01-01
    • 2012-01-03
    • 2013-03-25
    • 1970-01-01
    • 1970-01-01
    • 2023-04-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多