フロントエンドではGETリクエストにAngularJS "$ resource"を使用し、バックエンドではSpringMVCを使用してメソッドを公開しています。JavascriptによるキャッシュとサーバーのHTTPResponseヘッダーの設定との違いは何ですか?
私のGETリクエストをキャッシュします。 $ cacheFactoryのようにいくつかの方法があることに気付きました。か何かのように:
return {
Things: $resource('url/to/:thing', {}, {
list : {
method : 'GET',
cache : true
}
};
これはまた、いくつかのキャッシュパラメータを持つ単純なAJAX呼び出し可能とangularJSを使用してnecessarlyことができなかったことに注意してください。このようなアプローチを使用して
ので、代わりのクライアントには、私はこのようないくつかのことをヘッダそれだけでレスポンスにキャッシュを設定するJava単にすることにより、サーバ上で行うことができるだろう。
response.setHeader("Cache-Control: max-age=2592000");
何これら2つのアプローチの違いは何ですか?どのアプローチを使うべきですか?
P.この質問は、サーバー側のキャッシュとクライアント側のキャッシュに関する質問ではなく、サーバーのHTTPResponseヘッダーを設定するだけです。
ありがとう!例で私は3つの異なったパラメタがキャッシュに必要とされないのを見ます:Pragma + Cache-Control + Expires。キャッシュについては、これらの3つが必要ですか、またはキャッシュ制御が必要ですか?私は "Pragma:cache"というヘッダを見なかったので – Spring
私は貧弱な例(削除済み)を作った。私は主に、 'Cache-Control'がどのように機能するか、あるいはあなたが驚くべき振る舞いをする可能性があることを深く考えなければならないことを指摘したいと思っていました。しかし、はい、キャッシュコントロールはそれ自身で動作します。この記事は有用な参照のようですhttp://www.mnot.net/cache_docs/#CACHE-CONTROL – Yunchi
私たちは、特定のページの様々なxhrロードされたウィジェットにCache-Controlを5分間使用します。つまり、ページに戻ってもXHRはJavaScriptによって実行されますが、ブラウザ自体がキャッシュされたクエリをすぐに返すことになります(もちろんクエリが同一である限り)。情報がスーパーカレントである必要がない特定のページのサーバー負荷を軽減するための非常に迅速な方法として機能するので、私はこの方法が好きです。 –