FC2ブログ

IEよ忘れてくれ

技術関連のネタになってしまうかもしれませんが、
ちょっと面白かったので。。

ブラウザは普通、一度訪れたページを覚えています。
この「キャッシュ機能」は、無駄な通信を減らしたり、
ページの表示を高速化するなど、使う側にとっては
便利なことが多いですね。

しかし、いくら便利なキャッシュ機能でも、
WEBシステム屋にとってはしばしば頭痛のタネとなります。
毎回内容が変わる動的ページであるにも関わらず、
URLが同じだと、キャッシュを読み込んでしまい、
一向に変わっていないように見えてしまうことがあるからです。

特にInternetExplorerのキャッシュはとても「ネバネバ」しており、
彼に忘れてもらうのは特別な努力が要ります。

その一例として、PHPだと、ページを出す際に、ブラウザに
こんなヘッダー(ブラウザへの命令のようなもの)を
送ると、キャッシュさせたくない場合に有効とされています:

header("Expires: Thu, 01 Dec 1994 16:00:00 GMT");
header("Last-Modified: ". gmdate("D, d M Y H:i:s"). " GMT");
header("Cache-Control: no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");


これらのうち、下三つが意味するところは、ストレートに
「キャッシュしないで」なのでしょうが、面白いのは上2つです。

header("Expires: Thu, 01 Dec 1994 16:00:00 GMT");


意訳:「これから送るページはもう十数年以上前に賞味期限が切れています。」
(だからユーザ様に見せたらすぐ捨てなさい)


header("Last-Modified: ". gmdate("D, d M Y H:i:s"). " GMT");


意訳:「これから送るページは出来たてほやほやのアツアツですよ。」
(だから今までのを捨てなさい)


こうした、真っ向から矛盾した命令も駆使し、
なんとかIEなどのブラウザに、
過去を忘れてもらうわけなのです。(笑)

どのブラウザにどれが利いているのかは確かめたことはありませんが、
IEの場合、バージョンなどによってはバグかなにかで(?)、
こういう涙ぐましい小細工をしてもキャッシュを忘れてくれないことがあるそうで、
そんなときはランダムなURLにでもするしかないのかも知れません。。(^^;)

コメント

No title

>header("Pragma: no-cache");
こいつはカッコ良いですね。
なんとなく”組み込み系”って雰囲気が漂ったりして(^^

昨日は2時から下げる予定が、逆に2時から勢いよく上がりました。
デイトレしてたら大損するところでした。
株価って人の思いで動いてるんだけど、自分の思いと一致しないと大やけどっすね。
来週辺りからデイトレの練習でもしてみようかと思ってます。

No title

私のIE8はキャッシュが消えないんですよ。(TT)
何度も更新面倒でしょうがないです。

確かに・・・

自分はWebページでの動作チェックでのデフォルトのブラウザがFirefoxなので、
IEなどは動作チェック時にはあまり使用したことはないのですが、自分のサーバーにWordPressをインストールさせていただいたときに、ちょっとIEで動作確認をしなければいけない状態になったのですが、そこでちゃんとMySQLのパスワードをWordPressのファイルに入力した状態でも、「DBエラーです」と何度も表示されたときはあせりましたね~・・・キャッシュクリアしてF5何回押しても「DBエラーです」は本当に焦りましたよ・・・

その後OperaとFirefoxで回覧したら、通常通りPHP&MySQLが動作していましたし、動作の異常やphp.iniをチェックするのにいろいろと時間がかかってしまいました・・・

IEでPHPのコードの動作のチェックをしようとしたりするときはキャッシュクリア後も動作しないことがありましたね。
他にもDNSサーバー間の動作をチェックしたりすると、hostsファイルの方をちゃんと設定したのにも関わらずNot Found 404エラーしかでなくなっていましたし。。。(Linuxっていいですね・・・)

少し話はずれますけど、こういう技術関連の情報っていいですよね。
自分も日々学んで精進しないとな~・・・

No title

>Mooさん

確かにそうですね(^^)>プラグマ
#pragma IE様お願いですキャッシュを消してください。
と書きたくなることも(^^)

株価ってときどき予想外の動きしますよね。。
デイトレはタイミングとかの関係で
取引ソフトとかも重要になってくるのでしょうね。

>いやさん

IEって再読み込みしてもキャッシュを出すことあるんですよね。
この仕様は流石に困ります。。

>暗黒の鬼神さん

IEはいろいろ困った挙動することありますよね。。
SSLがらみとかでも苦労したことあります。。
404になっても「親切な」別画面だしたりしますし。。
極め付きは、わりと有名な現象ですが、キャッシュを抑制しすぎると、
今度はフォーム入力後に「戻る」ボタンすると消えてたりしますよね。。(^^;)

コメントの投稿

トラックバック


この記事にトラックバックする(FC2ブログユーザー)