1

我遇到了一个非常烦人的问题,并想出了一个非常丑陋的黑客来使它工作。

我使用 CouchDB 数据库(供公司内部使用)开发 Hta 应用程序。问题是似乎有一些非常激进的数据库查询缓存,而且很难想出解决方案。所以数据库中的更新数据不会出现在浏览器中,浏览器仍然在缓存中保留先前的请求结果,直到整个应用程序重新启动。

哦,CouchDB(或者它的 mochiweb 服务器)不允许未知的 GET 变量,所以通常的附加某种时间戳的解决方案是行不通的。

我找到了某种解决方案,但它非常丑陋。解决方案是:

  • 仅打开具有最新修订号的文档(简单而美观,不适用于视图)
  • 使用 apache 作为转发代理监听 200+ 端口,并在每个读取查询中随机选择一个。(那是丑陋的)。

Hta 接受对其他端口的 ajax 调用(甚至可能在其他域上,奇怪的行为),所以它工作得很好,我只有 1/200 的机会不会出现新数据,但这仍然比 1/1 更好,我可以忍受。

所以我要问的是,有没有更好的解决方案?我可以侵入 mochiweb 服务器来修改缓存标头(并希望它们不会被忽略)吗?我可以在网址中使用一个特殊的未知“一次性”键来附加一些随机字符串吗?或者有没有办法告诉 Hta 不要缓存任何东西(从应用程序中,这应该可以在数百台计算机上工作)?

4

1 回答 1

2

它仍然很难看,但比您当前的 apache 设置要丑一些,但是您不能使用 apache 重写规则来允许您在 url 上设置任意 no_cache 属性吗?apache 可以把它扔掉,所以 couchdb 不会看到它。

于 2009-09-07T00:25:30.247 回答