ASP.NET MVC - 在客户端缓存页面

时间:2013-01-30 16:50:06

标签: asp.net-mvc asp.net-mvc-3 outputcache

我有以这种方式缓存的代码:

[OutputCache(Duration="3600", Location=OutputCacheLocation.Client)]

现在,我并不确切知道此输出缓存的工作原理。它究竟在哪里保留页面的副本? OutputCacheLocation.ClientOutputCacheLocation.Browser之间有什么区别?

1 个答案:

答案 0 :(得分:9)

  

它究竟在哪里保留页面的副本?

存储缓存的位置由OutputCacheAttribute的{​​{3}}属性决定。在您的情况下,您设置Location=OutputCacheLocation.Client,以便将缓存保留在客户端浏览器上。

  

OutputCacheLocation.Client和。之间有什么区别?   OutputCacheLocation.Browser?

OutputCacheLocation.Browser不存在。这是一个无效的价值。 Location枚举类型的文档包含可能的值及其用法说明:

  
      
  • 任何 - 输出缓存可以位于代理服务器(或任何其他服务器)上的浏览器客户端(发出请求的位置)   参与请求,或者在请求所在的服务器上   处理。该值对应于HttpCacheability.Public   枚举值。
  •   
  • 客户端 - 输出缓存位于发出请求的浏览器客户端上。该值对应于   HttpCacheability.Private枚举值。
  •   
  • 下游 - 输出缓存可以存储在除源服务器之外的任何支持HTTP 1.1缓存的设备中。这包括   代理服务器和发出请求的客户端。
  •   
  • 服务器 - 输出缓存位于处理请求的Web服务器上。该值对应于   HttpCacheability.Server枚举值。
  •   
  • - 对请求的页面禁用输出缓存。该值对应于HttpCacheability.NoCache枚举值。
  •   
  • ServerAndClient - 输出缓存只能存储在原点   服务器或请求客户端。不允许代理服务器   缓存响应。该值对应于的组合   HttpCacheability.Private和HttpCacheability.Server枚举   值。
  •