智能缓存页面,ASP.NET MVC没有变化

时间:2012-09-30 02:06:49

标签: c# asp.net-mvc caching http-caching

我正在考虑为asp.net mvc页面实现缓存机制,为您提供最新版本的网页,但如果页面自上次缓存后没有更改,它将返回缓存结果。

顺便说一句,我想知道OutputCacheAttribute缓存的限制是什么 - 可以使用许多位置 - 客户端,服务器端,向下流,任意(默认)等等。我想知道哪个是最快的选择, 因为我不知道客户端的限制是什么 - 如果它可以存储所有缓存的数据,我认为它肯定是最好的缓存位置。那么什么数据可以存储在每个位置?

我带来的一个好主意是将某个地址的最后查看页面版本保存为cookie中的哈希,因此当用户请求页面时,如果其哈希值没有改变,我可能会给他缓存的结果。但如果我计算当前页面哈希值,它可能会节省流量,但它仍然需要时间让服务器处理请求,所以我仍然不确定实现它的最佳方法是什么以及如何产生最佳结果。

实现这一目标的见解和想法都很棒。

1 个答案:

答案 0 :(得分:0)

您的想法听起来很像http ETag标头和304未修改的响应 - http://en.wikipedia.org/wiki/HTTP_ETag#Typical_usage。基本上你不需要自定义cookie,因为协议已经支持这个。

至于返回缓存版本而对服务器影响很小,请使用您已经提到的输出缓存属性。