0

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

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

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

尽可能复杂地实现这一点的见解和想法都很棒。

4

1 回答 1

0

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

至于返回对服务器影响不大的缓存版本,请使用您已经提到的 Output Cache 属性。

于 2012-09-30T07:43:02.033 回答