【问题标题】:ASP.NET MVC - caching pages on client sideASP.NET MVC - 在客户端缓存页面
【发布时间】:2013-01-30 16:50:06
【问题描述】:
我有这样缓存的代码:
[OutputCache(Duration="3600", Location=OutputCacheLocation.Client)]
现在,我不完全知道这个输出缓存是如何工作的。它究竟在哪里保存页面的副本? OutputCacheLocation.Client和OutputCacheLocation.Browser有什么区别?
【问题讨论】:
标签:
asp.net-mvc
asp.net-mvc-3
outputcache
【解决方案1】:
它究竟将页面副本保存在哪里?
缓存的存储位置由OutputCacheAttribute 的Location 属性确定。在您的情况下,您设置了Location=OutputCacheLocation.Client,以便将缓存保留在客户端浏览器上。
OutputCacheLocation.Client 和有什么区别
OutputCacheLocation.Browser?
OutputCacheLocation.Browser 不存在。这是一个无效的值。 OutputCacheLocation 枚举类型的文档包含可能的值及其用法说明:
-
任何 - 输出缓存可以位于浏览器客户端(请求的来源)、代理服务器(或任何其他服务器)上
参与请求,或在请求所在的服务器上
处理。此值对应于 HttpCacheability.Public
枚举值。
-
客户端 - 输出缓存位于请求发起的浏览器客户端上。该值对应于
HttpCacheability.Private 枚举值。
-
下游 - 输出缓存可以存储在源服务器以外的任何支持 HTTP 1.1 缓存的设备中。这包括
代理服务器和发出请求的客户端。
-
服务器 - 输出缓存位于处理请求的 Web 服务器上。该值对应于
HttpCacheability.Server 枚举值。
-
无 - 为请求的页面禁用输出缓存。此值对应于 HttpCacheability.NoCache 枚举值。
-
ServerAndClient - 输出缓存只能存储在源头
服务器或在请求的客户端。不允许代理服务器
缓存响应。该值对应于
HttpCacheability.Private 和 HttpCacheability.Server 枚举
价值观。