でのXMLHttpRequestキャッシングは私が応答キャッシュ可能と最終変更ヘッダーを設定するAjaxリクエストを行います。私がAjaxリクエストを初めて作成したとき、私は200 OK
になります。 2回目は304 Not Modified
です。ハードリフレッシュおよびInternet Explorer/Firefoxの
Chrome(Ctrl + F5)でハードリフレッシュすると、200 OK
- すばらしいです!
Internet Explorer/Firefoxでハードリフレッシュすると、304 Not Modified
と表示されます。ただし、他のすべてのリソース(JS/CSS/HTML/PNG)は200 OK
を返します。
理由は、これらのブラウザのハードリフレッシュに関係なく、XMLHttpRequestの「If-Not-Modified」ヘッダーが送信されるためです。私はスティーブ・スーダーズがそれを文書化すると信じている。here。
私はETagを設定し、 "If-None-Match"のコンディションを無駄にしてみました(これはSteve Soudersのページのコメントに記載されています)。
誰も知恵の宝石を持っていますか?
おかげで、 ベン
更新
私は、 "変更した場合は-以来" に対する保存された最終更新日時をチェックすることができます。しかし、うまくいけば、この質問はヘッダーが間違って設定されていることを知っている他のSOユーザーにとって役に立ちます。
要求しながら2
更新を「変更した場合-ので」毎回ヘッダで送信されます。有効期限が設定されていないか、または将来の日付に設定されている場合、Internet Explorerは要求を出しません。役に立たない!
アップデートは3
これは、同様に、今、ライブのブログかもしれません。 Internet Explorerは、localhostのときに2番目のリクエストを作成することはありません。実際のIPを使用するか、ループバックが機能します。
スクリプトsrcパス(src = 'myscript.js?q = 45920'など)で乱数またはdatetime値を使用して、各リクエストでファイル名を変更してキャッシュを防止しようとしましたか? –
ハードリフレッシュから来ない限り、キャッシュしておきたい。したがって、ランダムなクエリ文字列パラメータを設定しても効果はありません。しかし、提案をありがとう! –