fetchやxhrを使って非同期通信をしているとIEでは勝手にキャッシュからデータを取得してサーバーにリクエストしないことがある。
そういう時はIf-Modified-Sinceヘッダーを追加してリクエストするとよい。
fetch('url', { defaultHeaders: { 'If-Modified-Since': 'Thu, 01 Jun 1970 00:00:00 GMT' } });
xhr.setRequestHeader('If-Modified-Since', 'Thu, 01 Jun 1970 00:00:00 GMT');
If-Modified-Sinceは指定した日時より新しいファイルがサーバーに存在する場合のみ取得するという条件つきリクエストで、この例では、キャッシュを実質的に無効にしている。
以下はIf-Modified-Sinceヘッダーの書式だ
If-Modified-Since: <day-name>, <day> <month> <year> <hour>:<minute>:<second> GMT
IEはよくわからないタイミングでキャッシュを利用するのでこのヘッダーは必須なように思われる。IEの寿命が尽きるまで・・・