問題タブ [browser-cache]
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.
jquery - ブラウザーのキャッシュを修正し、JSON の notmodified 応答を修正するには? jQuery.ajax({ifModified:true,cache:true}) データ応答時の JSON 要求の中断
ブラウザのキャッシュを修正notmodified
して JSON に応答する方法は? 応答時にjQuery.ajax({ifModified:true,cache:true})
JSON 要求が中断されます。data
初めてのブラウザ リクエストhttp://localhost/apiは、ステータス200 OK
と次を返します304 Not Modified
XHR の初回は OK を返します:
しかし、次回はdata
undefinedを返します:
それを解決する方法は?jQuery 1.5.1 のバグのようです。期待される結果:
font-face - font-face フォントのキャッシュ
TypeFront でホストされているフォントを埋め込むために @font-face を使用していますが、私のフォントはブラウザー (Firefox 3.6.13 および Epiphany 2.30.2) によってキャッシュされません。これにより、ページが読み込まれるたびに、Firefox で FOUC (スタイル設定されていないコンテンツのフラッシュ) が発生し、Epiphany で MFOMT (欠落したテキストの瞬間的なフラッシュ、私はそれを作成したばかりです) が発生します (最初は FOUC/MFOMT で問題ありません)ページが読み込まれますが、毎回ではありません)。
可能であれば Base64 の CSS にフォントを埋め込む必要がないようにしていますが、フォントを自分でホストすることはできません。
フォントがキャッシュされないのはなぜですか? この問題が発生しない代替の無料フォント ホスティング サービスはありますか?
テスト ページ:
Firebug で観察すると、「304 Not Modified」またはキャッシュされたフォントが使用されていることを示すその他の表示ではなく、ページが読み込まれるたびに「200 OK」でフォントが提供されることが [Net] タブに表示されます (例: ブラウザは試行さえしていません) HTTP リクエスト)。
HTTP ヘッダー:
javascript - 常に最新の外部スクリプト バージョンを取得してキャッシュに保持するブックマークレットを作成しますか?
ページ内スクリプト タグを使用して、通常は次のようにします。
そうすれば、スクリプト ソースの URL を更新してキャッシュに保持するときに、ブラウザーは最新バージョンを取得します。
さて、編集できないブックマークレットでそれを達成するにはどうすればよいでしょうか (ユーザーに削除/新規作成を依頼しない限り)。
サンプルのブックマークレット:
gwt - GWTキャッシングの概念
誰かがGWTでのキャッシングの概念を簡単に説明できますか?いろいろなところで読んだことがありますが、知識が限られているせいか、理解できません。
nocache.js、cache.jsなど
または、クライアントにファイルを永久にキャッシュさせる方法や、ファイルをクライアントにキャッシュさせる方法など、サーバー上でのみファイルが変更された場合、クライアントはこれらのファイルを再度ダウンロードします。
caching - ブラウザはどのくらいのキャッシュスペースを使用しますか?
古いキャッシュファイルを時期尚早に削除する前に、さまざまなブラウザが何MB/GBをキャッシュするのか知りたいです。あなたは知っていますか?ボーナスポイントの場合、キャッシュされたファイルは(期限切れのファイルを超えて)削除されます。
html - サイトの index.html ページに最適なキャッシュ ポリシーを構成するにはどうすればよいですか?
時々更新される index.html ホームページを含む Web サイトを持っています。クライアントへのオファー、特別なメッセージなどを追加することがありますが、これらは翌日までにすべての人に表示される必要があります。
index.html がブラウザーによってキャッシュされている場合、多くのユーザーは、ページのコンテンツを明示的に更新しない限り、何かが変更されたことに気付かないでしょう...
キャッシュのパフォーマンスを犠牲にすることなく、100% の訪問者が最新の index.html ページを利用できるようにする最善の方法はどれですか?
jquery - jQuery ajaxで変更されていない304を処理する適切な方法
jQuery 1.5 の時点で、XMLHTTPRequest の W3C 仕様に従って、ajax メソッドは success() ハンドラーを呼び出すことによって 304 Not Modified 応答を正しく処理するようになりました。これにより、サーバーが実際にデータを返さなかったとしても (最新のデータが既にキャッシュされているため)、アプリケーションはリクエストを成功として扱うことができます。
通常の (キャッシュされていない) GET 要求の場合、成功ハンドラーは次の引数で呼び出されます。
- data: { サーバーからのデータ }
- 状態:OK
- jqXHR:
- ステータス:200
- ステータステキスト: OK
- responseText: { サーバーからのデータ }
キャッシュされた GET リクエストの場合、成功ハンドラーは次の引数で呼び出されます。
- データ: 未定義
- ステータス: 変更されていません
- jqXHR:
- ステータス: 304
- statusText: 変更されていません
- responseText: {キャッシュからのデータ}
(少なくとも、マニフェスト ファイルを介してアプリケーション キャッシュを使用する Web アプリの場合、これは IOS 4.2 で返される方法です。これは、ほとんどのプラットフォーム/ブラウザーでの一般的なブラウザー キャッシュで一貫していると想定しています)。
「data」引数は、リクエストが 200 OK の場合にのみ入力されることがわかります。ここで、jqXHR.responseText には、そのデータがサーバー (200 OK) からのものか、キャッシュ (304 Not Modified) からのものかに関係なく、常にデータが取り込まれます。
ほとんどの GET リクエストでは、取得したデータがどこから来たかに関係なく、成功ハンドラーが何らかの処理を行うことを考えると、成功コードで常に jqXHR.responseText を使用することが最も理にかなっているように思われます。このようなことをするのではなく:
または、jqXHR.responseTextが成功ハンドラーに入力されず、データ引数が入力される場合はありますか?
コードベースを調べて、すべての成功ハンドラーを変更する必要があります (以前は、キャッシュからでも常にデータを返す jQuery 1.4.2 を使用していました)。ですから、正しい方法で処理していることを確認したいだけです。(最後までやりたくないのですが、別の方法でやるべきだったと気づきません)。
.net - 開発/テスト中にキャッシュに何も保存しないようにIEを設定するにはどうすればよいですか?
Asp.NETサイトを作成していて、IEでテストしています。コードを変更してページを更新すると、変更が「表示」されず、IEのキャッシュとプライベートデータをクリアする必要がある場合があります。開発のためだけにこのキャッシングブラウザ側をオフにする方法はありますか?実稼働環境で機能が必要ですが、サイトでの作業中は面倒です。
ajax - ページ DOM が更新された後にブラウザーのキャッシュを変更するにはどうすればよいですか?
これまでのところ、AJAX を使用して静的コンテンツと動的コンテンツを分離できることがわかっているため、ブログ投稿にコメントの更新がある場合、記事を再ダウンロードする必要はなく (304 になります)、コメントのみをダウンロードします。今度は、取得した動的コンテンツを永続化して、次回は新しいコメントのみを要求する必要があるようにすることを考えています。Flash/Gears/HTML5Storage やその他のプラグインに頼らずにこれを行う方法はありますか?
編集:記事のコメントセクションが次のようになっているとしましょう:
コメントを取得するための AJAX 呼び出し<dl id='comments-block'>
は、次のスニペットを含む にコメントを追加します。
これはキャッシュできます。後続の AJAX 呼び出しは、上記に追加して、新しいコンテンツのみを返す必要があります。記事が読み込まれると、ロジックは次のようになります
- タイムスタンプなしの最初の AJAX コメント呼び出し: 現在のタイムスタンプ A までのすべてのコメントをフェッチします。これはキャッシュされます。
- 時間が経過すると、新しいタイムスタンプ B で、タイムスタンプ A の後にコメントを求めるリクエストがサーバーに送信されます。この呼び出しはキャッシュされる可能性がありますが、リクエスト URL は再利用されないため無意味です。
- クライアントは、タイムスタンプ B までコメントを更新しました。ただし、タイムスタンプ A までのコンテンツのみがキャッシュされます。
- クライアントが記事を更新すると、タイムスタンプのない最初のコメント リクエストが表示され、タイムスタンプ A までキャッシュされたコメントが返されます。
したがって、問題は、キャッシュされたコンテンツを変更して、タイムスタンプ A と B の間のコンテンツを含める方法です。
firefox - Firefoxのキャッシュバグ
これはバグ/問題であり、少なくとも3年間は時間がかかりました。
ASP.NETには、多くのjavascript(多かれ少なかれ静的)を使用する複雑で動的なページがあります。
これで、Firefoxでのみ発生し、その後、数個の10.000リクエストごとにのみ発生する動作が発生します。
ユーザーは私のサイトでゲームをプレイしているので、毎日同じページに何度もアクセスしています。そして、ゲームはページ上のjavascriptエラーでロックアップします。私は正確に何が起こっているのかを知ることができませんでした。ファイルが壊れている可能性がありますか?Shift-F5または単純なリロードは役に立ちません。ユーザーがキャッシュをクリアすると、問題は解決します。
これは現在何百回も報告されています。ユーザーがFirefoxユーザーであるたびに、毎回、キャッシュをクリアすると問題が修正されました。
再現できないので、バグを突き止めることができません。Firefoxがキャッシュすべきではないファイルをキャッシュしているという報告はたくさんあります。しかし、私の場合、それは問題ではないようです。他に何かが起こっています。
誰かが何が起こっているのか考えましたか?