我正在考虑为asp.net mvc页面实现缓存机制,为您提供最新版本的网页,但如果页面自上次缓存后没有更改,它将返回缓存结果。
顺便说一句,我想知道OutputCacheAttribute缓存的限制是什么 - 可以使用许多位置 - 客户端,服务器端,向下流,任意(默认)等等。我想知道哪个是最快的选择, 因为我不知道客户端的限制是什么 - 如果它可以存储所有缓存的数据,我认为它肯定是最好的缓存位置。那么什么数据可以存储在每个位置?
我带来的一个好主意是将某个地址的最后查看页面版本保存为cookie中的哈希,因此当用户请求页面时,如果其哈希值没有改变,我可能会给他缓存的结果。但如果我计算当前页面哈希值,它可能会节省流量,但它仍然需要时间让服务器处理请求,所以我仍然不确定实现它的最佳方法是什么以及如何产生最佳结果。
实现这一目标的见解和想法都很棒。
答案 0 :(得分:0)
您的想法听起来很像http ETag标头和304未修改的响应 - http://en.wikipedia.org/wiki/HTTP_ETag#Typical_usage。基本上你不需要自定义cookie,因为协议已经支持这个。
至于返回缓存版本而对服务器影响很小,请使用您已经提到的输出缓存属性。