xhr GETのキャッシュ
XMLHttpRequest GET のキャッシュについて
・・・なのだけれど、xhrだけではなく、キャッシュ全般にいえる話だった。
キャッシュの仕組みについては以下のリンク参照。
- 事例に学ぶWebシステム開発のワンポイント(12):ブラウザキャッシュでパフォーマンス向上―負荷分散装置の落とし穴に注意- - @IT
- HTTP キャッシュ ヘッダの設定 - Cache-Control
キャッシュが無効に設定されている
それで終わり。パラメータの有無は関係無くなる
キャッシュが有効な場合
- パラメータ無し
- サーバーと通信しない
- ブラウザのキャッシュから読み込み
- 2度目以降はオフラインでも可
- ブラウザのキャッシュから読み込み
- パラメータ有り かつ そのパラメータが2度目以降
- サーバーと通信
- 更新されていない -> 304 Not Modified
- 更新されている -> 200 OK
- 更新されていない -> 304 Not Modified
- パラメータ有り かつ そのパラメータが初回
- キャッシュは無効
- 200 OK
xhrでキャッシュを利用したくない場合
ユニークなパラメータにする。Date.now()が定番
JavaScriptからはキャッシュが有効か分からない
成功した場合、xhr.status
は200になる。304は返らない。