0

jQueryのload関数を使用して、サーバーから画像(グラフ)を取得しています。グラフは、基本認証で保護されたRESTAPIから受信されます。画像は、ヘッダーCache-Control max-age=0で返される現在の設定にあります。これは、ブラウザから直接画像のURLを呼び出す場合に尊重されます。ただし、jQueryのload関数を使用すると、キャッシュされます。

毎回新しい画像を取得する必要はありません。サーバー上で大量の計算が必要であり、グラフにはリアルタイムデータが表示されるため、長時間のキャッシュは不要です。後でmax-age=30または60を使用します。

jQueryのajax関数にキャッシュオプションがあることは知っています。しかし、このオプションはtrueまたはfalseにのみ設定でき、それは私が探しているものではありません。

4

1 に答える 1

1

キャッシュされた結果の取得をオーバーライドする標準的な方法は、次のように、取得する URL にランダムなクエリ文字列を追加することです。

$(this).attr('src', url + '?randomval=' + (new Date).getTime() );

次に、クライアントがキャッシュできるようにサーバー ヘッダーを設定し (たとえばCache-Control: private、アプリケーションに適したもの)、URL に追加された「ランダムな」値を変更してリソースを強制する頻度を JavaScript コードで決定できます。リロードします。

于 2011-04-12T09:23:56.053 に答える