• ベストアンサー

CGIなのにIE8のときキャッシュが残ってしまう

jQueryの$.ajaxでPerl/CGIの出力結果を参照し、JavaScriptでそれを元に処理をしているのですが、XP/IE8環境でキャッシュが残ってしまう現象に遭遇し困っています。CGIの出力結果の時間に関係する処理なので、HTML上でタイムリーな表示にならず、とても困っています。Chrome、Firefox、Opera、Safariでは正常に動作しているのですが、IE8では動的であるCGIもキャッシュに残して参照する仕様になっているのでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • Picosoft
  • ベストアンサー率70% (274/391)
回答No.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");   },   ...  }); このヘッダをセットすることで、常に最新のデータを取得することができます。

furnace
質問者

お礼

とても具体的なご回答をいただき、ありがとうございました。深謝いたします。

関連するQ&A

専門家に質問してみよう