在MVC中禁用HTTP缓存或页面输出缓存的影响

时间:2015-01-27 05:34:46

标签: html asp.net-mvc outputcache http-caching

在ASP.Net MVC中,我们有页面输出缓存。我们通过添加属性来做到这一点 [的OutputCache]

然后是浏览器使用的HTTP缓存。我希望我能够纠正这一点。 使用HTTP标头,我们可以启用或禁用此HTTP缓存。

上述两者之间是否存在关联?如果我禁用它将影响其他。

1 个答案:

答案 0 :(得分:3)

Output caching告诉服务器在服务器内存中保存页面的呈现结果(作为字符串) - 为下一个请求做好准备。这意味着(例如)填充页面数据所需的任何数据库或文件请求不需要在缓存保持有效的情况下针对进一步的请求发生 - 以及构建视图和任何组件的(小)开销或谐音。 HTTP缓存告诉客户端和/或下游代理,内容将在指定的时间段内保持有效 - 并且可以从本地或代理缓存提供,而无需重新请求。

值得注意的是,子操作可以应用OutputCache - 允许您缓存页面中不会在用户之间更改的部分,同时仍然允许每个用户自定义页面。这有时被称为Donut Hole Caching(其中"洞"并没有改变,但"甜甜圈"其周围的其余部分)。

另一个概念是"甜甜圈缓存"大部分页面被一小部分(洞)缓存的地方不是 - 但是ASP.NET MVC中尚不支持这种功能。

OutputCacheAttribute允许您指定"位置" - 客户端,下游,服务器,服务器和客户端 - 它允许一个方便的方法在一个地方指定客户端和服务器输出缓存,但每个都可以独立控制。