新卒から文系エンジニア→人材業界に転職した人のブログ

新卒から文系エンジニア→人材業界に転職。技術・スキルがないためブログを通して勉強。その後、IT業界の業界知識が活かせる人材業界へ。異業種×異職種の転職経験有り。

このエントリーをはてなブックマークに追加

【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

.hatena-module:nth-of-type(10) { background: transparent; } .hatena-module:nth-of-type(10) .hatena-module-title{ display: none; } .hatena-module:nth-of-type(10) .hatena-module-body { padding: 0; }