我遇到了一个非常烦人的问题,并想出了一个非常丑陋的黑客来使它工作。
我使用 CouchDB 数据库(供公司内部使用)开发 Hta 应用程序。问题是似乎有一些非常激进的数据库查询缓存,而且很难想出解决方案。所以数据库中的更新数据不会出现在浏览器中,浏览器仍然在缓存中保留先前的请求结果,直到整个应用程序重新启动。
哦,CouchDB(或者它的 mochiweb 服务器)不允许未知的 GET 变量,所以通常的附加某种时间戳的解决方案是行不通的。
我找到了某种解决方案,但它非常丑陋。解决方案是:
- 仅打开具有最新修订号的文档(简单而美观,不适用于视图)
- 使用 apache 作为转发代理监听 200+ 端口,并在每个读取查询中随机选择一个。(那是丑陋的)。
Hta 接受对其他端口的 ajax 调用(甚至可能在其他域上,奇怪的行为),所以它工作得很好,我只有 1/200 的机会不会出现新数据,但这仍然比 1/1 更好,我可以忍受。
所以我要问的是,有没有更好的解决方案?我可以侵入 mochiweb 服务器来修改缓存标头(并希望它们不会被忽略)吗?我可以在网址中使用一个特殊的未知“一次性”键来附加一些随机字符串吗?或者有没有办法告诉 Hta 不要缓存任何东西(从应用程序中,这应该可以在数百台计算机上工作)?