1

私は非常に厄介な問題を抱えており、それを機能させるために非常に醜いハックを思いついた。

私はCouchDBデータベースを使用してHtaアプリケーションを開発しています(社内で使用するため)。問題は、データベースクエリの非常に積極的なキャッシュが存在するようであり、解決策を見つけるのが難しいことです。そのため、データベース内の更新されたデータは、アプリ全体が新たに起動されるまで、以前のリクエスト結果をキャッシュに保持しているブラウザーに表示されません。

ああ、CouchDB(またはそれはmochiwebサーバー)は未知のGET変数を許可しないので、ある種のタイムスタンプを追加する通常のソリューションは機能しません。

私はある種の解決策を見つけましたが、それはひどく醜いです。ソリューションは次のとおりです。

  • 最新のリビジョン番号のドキュメントのみを開きます(簡単で便利、ビューでは機能しません)
  • 200以上のポートをリッスンするフォワードプロキシとしてApacheを使用し、読み取りクエリごとにランダムに1つを選択します。(それは醜いものです)。

Htaは他のポートへのajax呼び出しを受け入れるので(おそらく他のドメインでも、奇妙な動作)、うまく機能します。新しいデータが表示されない可能性は1/200ですが、それでも1/1よりはましです。それと一緒に暮らすことができます。

だから私が求めているのは、これに対するより良い解決策はありますか?mochiwebサーバーにハッキングしてキャッシュヘッダーを変更できますか(無視されないことを願っています)?ランダムな文字列を追加するためにURLで使用できる特別な未知の「使い捨て」キーはありますか?または、Htaに何もキャッシュしないように指示する方法はありますか(アプリ内から、これは数百台のコンピューターで動作するはずです)?

4

1 に答える 1

2

それでも醜いですが、現在のapache設定よりも少し醜いですが、apache書き換えルールを使用して、URLに任意のno_cache属性を設定できるようにすることはできませんか?apacheはそれを破棄できるため、couchdbはそれを認識しません。

于 2009-09-07T00:25:30.247 に答える