我正在使用Couchdb(由Cloudant托管)。关于Couchdb的一个很酷的事情是,当你查询文档时,它支持标准的基于http etag的缓存(etag是文档的_rev字段)。
但是,我注意到,当我请求一个视图时,etag在每个请求上都是不同的,即使底层文档没有改变,这也会破坏使用etags来最小化来自数据库服务器的流量的目的。
我需要调整某个设置以解决此问题吗?
编辑:
这是我的设计文档的链接: https://codeliberate.cloudant.com/crowdfunder/_design/xLgxNgK_dXEQxHbzmEiCbWE_wackXLk83xDp28ShH8Q_
每次我在Chrome中刷新视图并使用网络控制台检查服务器发送的标头时,我会得到一个不同的标签(例如,我刷新的最后三次,我分别得到34c474c51f0beb87fa13755b9594c52a,39da8a25e57ba660da6a905d8374b26f和6c5862d8d4a9375d484aaa1c1c9e8321) 。非常确定基础数据在刷新之间没有变化。
答案 0 :(得分:2)
你所描述的是非常令人惊讶的......只要我不改变文件,我就会得到同样的etag以供观看。它与“If-None-Match”标题一起使用效果非常好。
您确定使用“真实视图”而不是:
答案 1 :(得分:2)
目前,Cloudant支持在单个文档上进行ETag缓存(其中ETag是文档的_rev
字段),但不支持视图:(