7cc@はてなブログ

JavaScriptとかとか

xhr GETのキャッシュ

XMLHttpRequest GET のキャッシュについて
・・・なのだけれど、xhrだけではなく、キャッシュ全般にいえる話だった。

キャッシュの仕組みについては以下のリンク参照。

キャッシュが無効に設定されている

それで終わり。パラメータの有無は関係無くなる

キャッシュが有効な場合

パラメータ無し
サーバーと通信しない
ブラウザのキャッシュから読み込み
2度目以降はオフラインでも可
パラメータ有り かつ そのパラメータが2度目以降
サーバーと通信
更新されていない -> 304 Not Modified
更新されている -> 200 OK
パラメータ有り かつ そのパラメータが初回
キャッシュは無効
200 OK

xhrでキャッシュを利用したくない場合

ユニークなパラメータにする。Date.now()が定番

JavaScriptからはキャッシュが有効か分からない

成功した場合、xhr.statusは200になる。304は返らない。