サラリーマンのすらすらIT日記

IT関連を中心とした日々を綴ります。
--/--/--

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
2013/07/18

XMLHttpRequestでGETしたときのキャッシュを無効にする

あるWebアプリに組み込む関係で、素のJavaScriptを書くことになりました。普段Ext JSなどを使っているせいで、素のJavaScriptは苦手です。


var xhr = new XMLHttpRequest();
xhr.open('GET', './hogehoge.json', true);
xhr.onreadystatechange = function() {
if ((xhr.readyState === 4) && (xhr.state === 200)) {
var res = xhr.responseText;
// resの処理
}
};
xhr.send(null);

と書いたのですが、hogehoge.jsonの中身を変えても処理結果が変わりません。おそらくキャッシュなのだろうと思って、ブラウザのキャッシュをクリアすると、確かに処理結果は変わります。そこで調べてやってみたのが、キャッシュを無効にする方法

xhr.setRequestHeader('Pragma', 'no-cache');
xhr.setRequestHeader('Cache-Control', 'no-cache');
xhr.setRequestHeader('If-Modified-Since', 'Thu, 01 Jun 1970 00:00:00 GMT');

と書くといいとのこと。最後のIf-Modified-SinceはIE対応とのこと。こちらにとても詳しいサンプルが挙げられています。

上記サイトにXMLHttpRequest Level 2のことも書かれていました。XMLHttpRequestは異なるドメインにアクセスできないという仕様がありますが、それを可能にしたのがXMLHttpRequest Level 2。ただ、すべてのブラウザで使えるわけではなく、IE8では違う書き方だとのこと(また独自なんですね)。これについては、こちらに詳しい。

勉強になりました。

スポンサーサイト

コメント

コメントの投稿

  • URL
  • コメント
  • パスワード
  • 秘密
  • 管理者にだけ表示を許可する

トラックバック

トラックバックURL:http://sookibizviz.blog81.fc2.com/tb.php/1625-cea8bc56

■  カレンダー

05 | 2017/06 | 07
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 -

■  プロフィール

sookibizviz

Author:sookibizviz
仕事の内容やソフトの紹介を交えながら、日々の悪戦苦闘を綴っていきます。

■  最新記事

■  最新コメント

■  最新トラックバック

■  月別アーカイブ

■  カテゴリ

未分類 (64)
BizViz (24)
IT (1119)
計量 (76)
環境 (26)
数学 (181)
ニュース (46)
本 (187)
音楽 (113)
囲碁 (5)
将棋 (26)
ブログ (14)
日記 (19)

■  FC2カウンター

■  検索フォーム

■  RSSリンクの表示

■  QRコード

QRコード
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。