我有以这种方式缓存的代码:
[OutputCache(Duration="3600", Location=OutputCacheLocation.Client)]
现在,我并不确切知道此输出缓存的工作原理。它究竟在哪里保留页面的副本? OutputCacheLocation.Client
和OutputCacheLocation.Browser
之间有什么区别?
答案 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枚举 值。