【Javascript・php・xmlhttprequest・ajax】外部ファイル(text)に書き込む&読み込む(おまけ)~キャッシュについて~
【今回の内容】
今回はキャッシュについて考えてみたい
【前回までの流れ】
前回までで以下のようなデータの流れをつかむことができた。
●入力→追加→保存→呼び出し→表示
しかし、
前回記事にあげた動的要素の追加・保存・表示を行うプログラムの
動作確認を行っていたら、
以下の問題があることに気がついた
●読み込み→追加→読み込みができない
→正確に言うと、読み込み後に追加した内容が表示されない
解決策から言うとhttpobjopenの下に以下の記述を追加する必要があった
ブラウザ側にキャッシュが残っているため、サーバへのリクエストが飛ばなかったのが原因であった。
httpobj.open("GET",url,false); httpobj.setRequestHeader('Pragma', 'no-cache'); httpobj.setRequestHeader('Cache-Control', 'no-cache'); httpobj.setRequestHeader('If-Modified-Since', 'Thu, 01 Jun 1970 00:00:00 GMT');
恥ずかしながら、キャッシュというのがブラウザ側で保存されている情報ことしかはわかっていなかった。
キャッシュがあるとは具体的にどういうことなのか?
プログラムにどんな影響を与えるのかわからなかったため、調べてみる
【キャッシュに関して新しくわかったこと】
■ブラウザにキャッシュがあると、サーバにリクエストしない
■プロキシにあるキャッシュがある場合は、プロキシがブラウザのリクエストをかえる
■キャッシュを持つのはブラウザだけではない。
→プロキシやAPサーバも持つ
■キャッシュをHTTPヘッダにより制御する場合は、
リクエスト側
レスポンス側
共通の三種類ある、
非常にわかりやすかった
参考:http://www.atmarkit.co.jp/ait/articles/0305/10/news002.html