2

我正在使用 Couchdb(由 Cloudant 托管)。Couchdb 的一个很酷的地方是,当您查询文档时,它支持标准的基于 http etag 的缓存(etag 是文档的 _rev 字段)。

但是,我注意到当我请求视图时,每个请求的 etag 都是不同的,即使基础文档没有更改,这违背了使用 etag 来最小化来自数据库服务器的流量的目的。

有没有我需要在某个地方调整的设置来解决这个问题?

编辑:

这是我的设计文档的链接: https ://codeliberate.cloudant.com/crowdfunder/_design/xLgxNgK_dXEQxHbzmEiCbWE_wackXLk83xDp28ShH8Q_

这里是视图输出的链接:https ://codeliberate.cloudant.com/crowdfunder/_design/xLgxNgK_dXEQxHbzmEiCbWE_wackXLk83xDp28ShH8Q_/_view/xLgxNgK_dXEQxHbzmEiCbWE_wackXLk83xDp28ShH8Q_

每次我在 Chrome 中刷新视图并使用网络控制台检查服务器发送的标头时,我都会得到一个不同的 etag(例如,我最近刷新的 3 次分别得到 34c474c51f0beb87fa13755b9594c52a、39da8a25e57ba660da6a905d8374b26f 和 6c5862d81d4a9378d41c19ae)。很确定基础数据在两次刷新之间没有变化。

4

2 回答 2

2

您所描述的内容非常令人惊讶...只要我不更改文档,我就会永远得到相同的 etag 用于查看。它与“If-None-Match”标题配合得很好。

您确定您使用的是“真实视图”而不是:

  • 暂时的看法?
  • 一个列表?
于 2012-10-21T13:39:38.213 回答
2

目前,Cloudant 支持对单个文档(其中 ETag 是文档的_rev字段)进行 ETag 缓存,但不支持视图 :(

于 2013-05-21T15:18:47.300 回答