キャッシュのおかげで同じデータを何度も受信する必要がなく、通信回線やサーバーの負担を軽減できます。
とても便利なキャッシュですが、プログラミングを行なう時に邪魔になることがあります。Ajax のプログラムはWebブラウザで動作確認しますが、ソースコードを修正したのに、結果に反映されないことがあるのです。更新ボタンを押しても上手く表示できません。
原因はWebブラウザのキャッシュに古いデータが保存されていて、情報が更新されないからです。キャッシュのことを知らないと、プログラミングする時に悩むことがありますので注意してください。
またニュースなど更新が頻繁なサイトを見るときも、キャッシュが邪魔になります。常に新しい情報を取得したい時は、キャッシュを使わないほうがいいです。
そこで今回はWebブラウザのキャッシュを消去する方法を説明します。
【1】C:\phpdev にある「2K-NT-XP-phpdev_start.bat」をダブルクリックして、phpdev を起動します。
【2】Firefox を起動して、アドレスに以下のように入力し実行します。
http://localhost/ajax/sample003/pref.html
【3】「データ取得」ボタンをクリックします。
【4】データが表示されました。ここまでは今までと同じです。
Firefox は開いたままにしてください。
【5】sample003フォルダを開いて、「pref.xml」をわざと「1pref.xml」に変更します。
C:\phpdev\www\ajax\sample003
*「\」はWindowsでは円記号のことです。
【6】Firefox の「再読み込み」ボタンをクリックします。
【7】最初の状態に戻りました。
【8】もう一度「データ取得」ボタンをクリックします。
【9】あれ!変ですよね? データが表示されています。
ファイル名を変えたので、本来ならデータは取得できないはずです。しかも失敗時のメッセージが表示されていません。
原因はブラウザがキャッシュを表示しているからです。キャッシュを消去すればブラウザは新しい情報を読み込みます。
それでは Firefox のキャッシュを消去してみましょう。
【10】Firefox のメニューから「ツール」→「プライバシー情報の消去」を選択します。
【11】「キャッシュ」がチェックされていることを確認し、「今すぐ消去」ボタンをクリックします。
これでキャッシュを消去できたので確認してみましょう。
【12】「再読み込み」ボタンをクリックします。
【13】「データ取得」ボタンをクリックします。
【14】今度はちゃんと失敗時のメッセージが表示されました。
【15】動作を確認したら、sample003フォルダを開いて、「pref.xml」を元に戻します。
プログラムの結果が正しく反映されない場合は、今回学んだキャッシュのことを思い出してください。
【解説】
(1)Internet Explorerでもキャッシュの問題が起こります。Internet Explorer6.0でキャッシュを消去するには以下の手順になります。
IE のメニューから「ツール」→「インターネットオプション」を選択します。
「ファイルの削除」ボタンをクリックし、「OK」ボタンをクリックします。
(2)Firefox と Internet Explorer では名称が違いますので整理しておきます。意味は同じです。
・Firefox キャッシュ 「再読み込み」ボタン
・Internet Explorer 一時ファイル 「更新」ボタン
【ワンポイント】
キャッシュを無視して新しい情報に更新するには、「スーパーリロード」を使う方法もあります。Firefox と Internet Explorerで操作は同じです。
・スーパーリロードの場合
「Ctrlキー」+「F5キー」を同時に押す
・更新、再読み込みの場合
「F5キー」
ただしスーパーリロードを多用すると、Webサーバーに負担がかかるので注意してください。スーパーリロードでもダメな場合は、やはりキャッシュを削除したほうが確実です。