キャッシュされたJavascriptが予期せぬ不具合を出す Internet Explorer 9の問題
Internet Explorer 9 において Webサーバーとの通信なしでキャッシュからコンテンツを表示する場合がある
http://support.microsoft.com/kb/2530998/ja
[インターネット一時ファイルと履歴の設定] で [自動的に確認する] が設定されている (既定値)
Web サーバーと通信せずキャッシュされたコンテンツを表示する場合があります。
本現象は Internet Explorer 9 の仕様です。
Web サーバー側での対応
コンテンツのHTTP Header やMeta タグでCache-control: no-cache もしくは max-age=0を指定
Internet Explorer 側での対応
Internet Explorer 9 で [Web サイトを表示するたびにに確認する] に設定する
Pumpkin Moonshine JavaScriptやCSSの更新時にキャッシュから読ませない
http://yuki.silk.to/2006/04/000170.html
プログラマ「プログラムを更新しました」
テスター「いきなりエラーがでますよ!動作確認したんですか!」
プログラマ「え、私のところでは動くけど…、キャッシュクリアしました?」
テスター「キャッシュをクリアしたらエラーがでなくなりました」
テスター「でも、ユーザ全員にキャッシュをクリアさせるの?」
Internet Explorer 9に乗り換えてみた – 新・ブログの館
http://dc800eb.blog77.fc2.com/blog-entry-3902.html
おぬしもサルじゃのぉ(^o^)日記 IE9のキャッシュ問題とその対応
http://aboutlinda.blog.fc2.com/blog-entry-64.html
■対応策(画面そのもの)
(1)
1
|
< meta http-equiv = "Pragma" content = "no-cache" />; |
(2)
1
|
< meta http-equiv = "Cache-Control" content = "no-cache" /> |
(3)
1
|
< meta http-equiv = "Expires" content = "0" /> |
■対応策(外部js,cssの読み込み)
現行:
1
2
|
< link href = "hogehoge.css" rel = "stylesheet" type = "text/css" />; < script src = "hogehoge.js" language = "javascript" type = "text/javascript" ></ script >; |
この指定方法だと、(IE9のデフォルト設定の場合)キャッシュが勝つ。
対応後:
1
2
|
< link href = "hogehoge.css?20130101" rel = "stylesheet" type = "text/css" /> < script src = "hogehoge.js?20130101" language = "javascript" type = "text/javascript" ></ script > |
外部ファイルを引数(変動)付きで読み込むこと