私は特に高価な (クエリと帯域幅の点で) を扱っています。これはアイテムのカタログと考えてください。ただし、カタログは常に完全に正確である必要があります。つまり、カタログの更新はリアルタイムで反映される必要があるため、固定のキャッシュ有効期限は機能しません。
カタログは、現在、JQuery 1.8.2 を使用して、次のようにクライアントによって要求されています。
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
url: "http://myserver.com/somejsonquery.aspx",
data: {},
dataType: "json",
success: function ( ... ) { ... },
error: function ( ... ) { ... }
});
結果は、"application/json" コンテンツ タイプで適切にフォーマットされた JSON になります。
私はサーバー側で信頼できるキャッシュを維持しているので、If-Modified-Since セマンティクスを実装して、キャッシュが最新のときに (DB またはネットワーク ヒットを発生させることなく) サーバーが 304 を返すことができるようにしたいと考えています。 「If-Modified-Since」タイムスタンプ以降にリロードが発生した場合、クライアントへの新しいカタログ。
ただし、これを機能させるのに問題があります(少なくともIEでは)。次の設定を試みましたが、クライアントに If-Modified-Since を送信させることができませんでした。
- JSON リクエストで "cache: true" を設定します
- サーバーが応答で "Cache-control: private" HTTP ヘッダーを返すようにする
これについて洞察を持っている人はいますか?
フォローアップとして、キャッシュ制御を「パブリック」に設定した場合 (つまり、プロキシ サーバーによってキャッシュ可能)、キャッシュの一貫性はプロキシを通じて維持されますか? つまり、クライアントがそのページを要求するたびに、プロキシがサーバーに戻ってチェックします。プロキシ キャッシングを有効にする場合、プロキシが一貫したキャッシュ状態を保証することを完全に確認する必要があります。
私はしばらくこれに固執していたので、助けていただければ幸いです!
ありがとう - K.