我有一个缓存这样的代码:
[OutputCache(Duration="3600", Location=OutputCacheLocation.Client)]
现在,我不知道到底该输出缓存是如何工作的。 究竟哪里不保持页面的副本? 什么是之间的差异OutputCacheLocation.Client
和OutputCacheLocation.Browser
?
我有一个缓存这样的代码:
[OutputCache(Duration="3600", Location=OutputCacheLocation.Client)]
现在,我不知道到底该输出缓存是如何工作的。 究竟哪里不保持页面的副本? 什么是之间的差异OutputCacheLocation.Client
和OutputCacheLocation.Browser
?
究竟哪里不保持页面的副本?
缓存的存储位置的位置被确定Location
的财产OutputCacheAttribute
。 在你的情况设置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枚举值的组合。