問題タブ [http-caching]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
azure - Azure CDN - ETag を使用した HTTP 304 キャッシュの有効化 - ホステッド Web ロール
Azure CDN で ETag を介してHTTP 圧縮(gzip) とHTTP 304 キャッシュを有効にしようとしています。Azure CDN Compression の有効化に関する問題は既に発見されていますが、現在は圧縮と ETag キャッシュ ( 304s ) を同時に機能させることができません。この問題は、こちらの Azure フォーラムに投稿されています。
圧縮されているが、HTTP キャッシュ可能 (304) リンクではない例を次に示します。
https://xxxx.vo.msecnd.net/resourceManager.axd?token=HL80vX5hf3lIAAA&group=core.js
キャッシュ可能 (304)で圧縮可能 (gzip) ではないリンクの例を次に示します。
https://xxxx.vo.msecnd.net/resourceManager.axd?token=HL80vX5hf3lIAAA&group=core.png
HTTP キャッシュ (304s)とHTTP 圧縮を Azure CDN で連携させる方法を知っている人はいますか?
ruby-on-rails - Heroku & Rails - Varnish は非常にまれにしかキャッシュされません
Heroku & Rails - Varnish HTTP Cache Not Workingに似た問題がありますが、解決策 (しばらく待ってからすべてが機能する) が適用されないようです。以下の設定を数日間行いました。
Heroku Google グループのこのスレッドには、同じ問題を抱えているユーザーが何人かいます。彼らは、すべてがキャッシュされるまでに時間がかかると言っていますが、私の理解では、しばらくするとすべてがキャッシュされるはずですよね? それとも、大量のトラフィックがある場合にのみ適用されますか?
キャッシュを適切に機能させるために、どこを見ればよいか、何を変更できるかについてアドバイスが必要です。
私のセットアップ:
Heroku (Rails 3.0.3、Ruby 1.9.2、bamboo-mri-1.9.2) でhttp://www.swingoutlondon.co.ukを実行しています。メイン インデックス ページは多くのデータベース クエリを実行して、基本的に静的なページ - 通常は約 2 ~ 3 秒かかります (はい、これは私が実際に対処する必要があることですが、ワニスのキャッシュがすぐに役立つと思います)。
hereCache-Control
で説明されているように応答ヘッダーを設定しましたが、実際にはページに設定されているようです:
ノート:Cache-Control: public, max-age=300
Age: 0
これは、キャッシュされたコピーを取得していないことを示していると思います。実際、コマンドは通常の遅い 2 ~ 3 秒で返されます。
そのカールを繰り返し試行し続けると、キャッシュされたコピーがときどきできます (ページは 0.5 秒未満で読み込まれ、Age
0 より大きくなります)。
HTTP ヘッダーを完全に理解していないことを告白しなければなりませんが、1 つの手がかりは次Age
のX-Varnish
とおりです。
ここに私がチェックしたものがあります:
- のソースは毎回同じです。
- そのページに
before_filter
は、ページが最後に更新された時刻をインスタンス変数として設定するものがあります。 - 多数の Cookie があります。私が見る限り、それらはすべて Google Analytics または Twitter または Facebook ボタンのいずれかによって設定されます。
参考までに、ここに私の Request ヘッダーを示します。
php - symfony2 http キャッシュをグローバルに無効にする方法は?
でウェブサイトを開発していSymfony2
ます。
Web サイトのほとんどのページは非常に動的であるため、HTTP キャッシュに問題があります。
レスポンスに関数を使えばsetMaxAge(0)
問題が解決することがわかったのですが、今はレスポンスごとに設定することができません。HTTP キャッシュを無効にする方法、または setMaxAge
グローバルに 0 にする方法はありますか?
ruby-on-rails - Rails JavaScript アセット キャッシュが Internet Explorer によってクリアされない
JavaScript には Rails アセット パイプラインを使用しています。application-xyz.js (xyz = ダイジェスト) はキャッシュされており、すべてのアセットを再コンパイルして本番環境に再デプロイしても、IE (バージョン 8) によってクリアされないようです。履歴やインターネット一時ファイルを削除しても役に立ちません。
IE がキャッシュされたバージョンをクリアし、ページの最新バージョンを常に取得するためのディレクティブ/ヘッダーはありますか?
asp.net - 動的に生成された CSS の出力キャッシュ
私のアプリケーションでは、ユーザーは自分のサイトの CSS を変更するオプションを持っています。
これが頻繁に変更される可能性は低いですが、変更された場合は、彼らとそのサイトの訪問者がすぐに結果を確認できるようにする必要があります.
ユーザーが CSS を更新した日時を記録するので、URL にタイムスタンプを追加するだけで簡単に解決できます。
ただし、キャッシュ ヘッダーをプログラムで設定して、CSS ファイルが変更された場合にブラウザーに強制的に再要求させることができるかどうかを知りたいです。
asp.net-mvc-3 - ASP.NET MVC3 ビューの任意の部分の最終変更時刻を取得しますか?
ビューをレンダリングする前に、ビューの任意の部分の最終変更時刻を取得したいと考えています。これには、レイアウト ページ、部分ビューなどが含まれます。
適切な時間を設定したい
http キャッシングを適切に処理するため。現在、これはビュー自体で機能していますが、レイアウトページに変更がある場合、または子の部分ビューが選択されていない場合
最終更新時刻全体を取得する方法はありますか?
304 Not Modified
ユーザーが一貫性のない動作をするため、ビューの関連部分を変更した展開後に応答したくありません。
http - キャッシュされたアイテムを更新するには、imgタグの画像とcssの画像にクエリ文字列を追加する必要がありますか?
一般的な方法は、css、javascript、および画像ファイルの有効期限をはるかに先に設定し、次のようなクエリ文字列を追加する(またはファイル名を変更する)ことで、ファイルが変更されたらすぐにすべてのブラウザが最新のコンテンツを取得するようにすることです。
これから<link rel="stylesheet" type="text/css" href="base.css">
:
これに:
また:
しかし、cssファイルで参照されている画像はどうですか?
または/img/logo.png
、base.cssがファイル名をにbase.css?v=1234
またはbase_1234.css
自動的に変更したときにリロードされますか?
また、-tagsの画像はsrc
どうimg
ですか?
asp.net-mvc - これらの2つのシナリオでChromeがクライアントキャッシュを異なる方法で使用するのはなぜですか?
HTML5を使用した小さなシングルページアプリケーションに取り組んでいます。1つの機能は、ページに埋め込まれたPDFドキュメントを表示することです。このドキュメントは、リストから選択できます。
今、私はChromeを(最初は、次に他のすべての最新のブラウザーは)ローカルクライアントキャッシュを使用して、サーバーを経由せずにPDFドキュメントの単純なGET要求を実行しようとしています(もちろん初めて以外)。<object>
HTMLの要素に「data」プロパティを設定してPDFファイルを要求します。
XMLHttpRequestの実用的な例を見つけました(ではありません<object>
)。Chromeの開発者ツール([ネットワーク]タブ)を使用すると、最初のリクエストがサーバーに送信され、次のヘッダーを含む応答が返されることがわかります。
2番目のリクエストは、サーバーのラウンドトリップなしでローカルキャッシュから提供されます。これは、私が望んでいることです。
自分のアプリケーションに戻って、ASP-NETMVC4を使用して設定しました
私のコントローラーで。このコントローラーへの最初のリクエスト-URLを使用http://localhost:63035/?doi=10.1155/2007/98732
すると、次のヘッダーが生成されます。
2番目のリクエストは、サーバーへの別のラウンドトリップをもたらし、応答ははるかに速くなります(サーバー側のキャッシュを提案しますか?)が、200OKとこれらのヘッダーを返します。
同じURLに対する3番目のリクエストは、さらに別のラウンドトリップと、これらのヘッダーを含む304応答になります。
私の質問は、目的の動作(つまり、最初のリクエストからX秒以内にクライアントキャッシュからPDFリクエストがいっぱいになる)を取得するために、OutputCache属性をどのように設定する必要があるかということです。
または、<object>
要素に「data」プロパティを設定してPDFを表示させるときに、正しく処理されていませんか?
asp.net-mvc-3 - 画像がキャッシュされないのはなぜですか?
ASP.NET MVC3 アプリケーションをセットアップしています。画像を返すコントローラーがあり、次を追加しました。
しかし、これらの画像の HTTP 応答を確認すると、すべての画像に "cache-control: no-cache" と "expires: -1" というヘッダーがあり、ブラウザーが画像をキャッシュしていないことを意味します。
私は周りを見回していますが、応答がブラウザーにそれらをキャッシュしないように指示している理由について何も見つかりません。私は自分の属性を作成しようとさえしました:
しかし、それは私をどこにも連れて行きませんでした。
どんな助けでも大歓迎です。
更新:これは、キャッシュなしを追加してオーバーライドしている IIS 設定である必要があると考え始めています。しかし、私は何も見つけられないようです。唯一の奇妙な点は、.Set...() メソッドを呼び出した後にキャッシュ変数の状態を見ると、内部変数が更新されていないことです。何かが変わると思っていましたが、まだ「キャッシュなし」と表示されています。
更新 2: このメソッドの戻り値は次のとおりであることを追加する必要があります。
更新 3: 私もこれ (http://dotnetslackers.com/articles/aspnet/ASP-NET-MVC-3-Controller-for-Serving-Images.aspx) を見つけて、運がなくても実装しようとしました。画像の応答ヘッダーでキャッシュなしオプションをまだ取得しています。
更新 4: サーバー設定を確認する必要がありました...コントローラーをバイパスしてサーバー上の画像ファイルに直接アクセスすると、キャッシュが行われ、応答ヘッダーに正しいキャッシュ設定が含まれます。
更新 5 (ええ、夢中になっています): まったく新しい MVC3 プロジェクトを作成し、1 つのコントローラーを作成しただけで、問題なくキャッシュされました。したがって、この pragma:no-cache を追加している直接のコードの外に何かがあります。私の人生では、それが何であるかを理解できません。=-/
php - REST リソースのさまざまな形式/表現をキャッシュする方法は?
tonic.php (http://peej.github.com/tonic/) ライブラリを使用して REST リソースを作成します。データは非常に安定しており、キャッシュ時間が長い方が望ましいでしょう。キャッシュ ヘッダーを設定します (tonic.php ライブラリを使用):
問題は、html が要求されると、php ページに対して cURL 呼び出しが行われ、返された html が応答本文に入れられることです。
この返されたページは、同じリソースへの AJAX 呼び出しによって実際のデータを取得しますが、「text/html」ではなく「application/json」のヘッダーを受け入れます。AJAX呼び出しはjqueryで行われ、設定した場合
jquery $.ajax で、accept: text/html を使用してリソースを呼び出すと、データが Web ページ (Firefox) ではなく JSON として表示されるか、エラー (IE8) がスローされます。コード:
追加する
それを機能させます。ただし、json はキャッシュされないため、Jquery ajax 呼び出しで cache: false を設定した場合と同じ動作になります。
2 つの異なる表現をキャッシュし、ブラウザに要求された Accept-Header の正しい表現を表示させるにはどうすればよいですか?