1

我的网页使用无缓存机制,不让浏览器缓存内容。但是,我有一些疑问。开发人员没有在 MasterPage 的 PageLoad 方法中插入缓存代码。

就像这样(在母版页的页面加载上

   HttpContext.Current.Response.CacheControl = "no-cache"
   HttpContext.Current.Response.AddHeader("Pragma", "no-cache")
   HttpContext.Current.Response.ExpiresAbsolute = DateTime.Now.Date
   HttpContext.Current.Response.Expires = -1

我怀疑这是正确的操作,是否应该更好地将其插入BasePage OnInit事件中?

4

1 回答 1

2

您可以在生成响应之前执行此 HTTPHeaders。查看 MSDN

Page_init/page_load 或者MasterPage/BasePage/ActualPage

请参阅从 ASP.NET 禁用所有浏览器的浏览器缓存

您也可以在页面指令中执行此操作

<%@ OutputCache Duration="60" VaryByParam="None"%>

即使在 Web.config 中,您也可以配置

<caching>
  <outputCacheSettings>
    <outputCacheProfiles>
      <add name="Cache30Seconds" duration="30" 
        varyByParam="none" />
    </outputCacheProfiles>
  </outputCacheSettings>
</caching>

有关缓存的更多信息

于 2013-09-30T09:01:44.613 回答