- ベストアンサー
CGIなのにIE8のときキャッシュが残ってしまう
jQueryの$.ajaxでPerl/CGIの出力結果を参照し、JavaScriptでそれを元に処理をしているのですが、XP/IE8環境でキャッシュが残ってしまう現象に遭遇し困っています。CGIの出力結果の時間に関係する処理なので、HTML上でタイムリーな表示にならず、とても困っています。Chrome、Firefox、Opera、Safariでは正常に動作しているのですが、IE8では動的であるCGIもキャッシュに残して参照する仕様になっているのでしょうか。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
IEはXmlHttpRequestの結果をキャッシュするみたいですね。 ・cacheオプションをfalseに設定する $.ajax({ url : "http://hogehoge/ajax", cache : false, data : {...}, ... }); こうすると"http://hogehoge/ajax?_=(ミリ秒単位の現在時刻)"というURLでリクエストが投げられるため、 毎回違うURLを生成することができ、キャッシュのデータは使われなくなります。 ・キャッシュが使われないようにヘッダをセットする $.ajax({ url : "http://hogehoge/ajax", data : {...}, beforeSend : function(xhr){ xhr.setRequestHeader("If-Modified-Since", "Thu, 01 Jun 1970 00:00:00 GMT"); }, ... }); このヘッダをセットすることで、常に最新のデータを取得することができます。
お礼
とても具体的なご回答をいただき、ありがとうございました。深謝いたします。