Safariのキャッシュは空にならない(2006-01-06)

ウエブページの管理人は、更新が上手くいったかどうか検証する。テキストを書き上げ、マークアップをアジャストし、リンクを修正して、何やらカンやらやって、場合に依っちゃスタイルシートを書き換えたり画像を換えたり。一応ローカルで検証してからサーバーにプットして、更新作業は一段落するけれども、これで終わりというわけではない。実際にアクセスして読み直すと、細かな間違いを見つけることがある。リンク切れや間違いがないかどうか、確認しなくてはならない。出来るだけ能率的に更新できるように工夫しているけれども、検証作業は大切。

ブラウザに表示させて、リロードボタンをクリックするのだけれど、アップル謹製ブラウザのサファリは素直にリロードしてくれない。新しいコンテンツをプットしたはずなのに、更新前のページが表示される。ブラウザにはキャッシュという仕組みがある。ご存じと思うが、一旦アクセスしたら、その情報をローカルに貯めこんでおいて、次にアクセスしたときに取りあえずそいつを表示させる仕組み。そうすることで表示が速くなる。しかし、リロードって云うことはリロードなんだから、素直にリロードしたらよいのにと思う。

リロードで表示が更新されないということは、ウエブページの内容を更新したつもりで出来ていないか、キャッシュに貯めこまれた古い情報が表示されているか、どちらかだ。キャッシュを廃棄して、新しい情報を表示させる必要がある。「キャッシュをクリアする」とか「空にする」という操作である。

サファリはメニューから「キャッシュを空」に出来るが、どうにもその挙動があやしい。キャッシュがなかなかクリアされない。特に、スタイルシートで指定している背景画像をファイル名そのままにして入れ替えたとき、更新内容が反映されない。色々やるが、スタイルシートの背景画像のキャッシュはかなり頑固だ。リロードしても、キャッシュを空にしても、そのまま。画像ファイルとそれ以外、あるいはスタイルシートとHTMLで、キャッシュの扱いが違うのかも知れない。解決策は、サファリを諦めて、Firefoxを起動させること。検証は別にサファリにこだわる必要はないから。しかし、身も蓋もない。

Safariのヘルプには、以下の記述がある。

Web ページを開くたびに、「Safari」はページのコンテンツを「キャッシュ」と呼ばれる場所に一時的に保存して、次にそのページを開くときにすばやく開けるようにしています。

開いたページが最新のコンテンツを表示していない場合には、キャッシュを空にする必要があります。また Webページを作成しているユーザが、キャッシュを空にして最新のコンテンツを表示させたい場合もあるでしょう

「Safari」メニューから「キャッシュを空に」を選択して、「消去」をクリックしてください。

強調は筆者によるが、そこまで分かっているなら何とかして欲しい。分かっているはずなのにクリアできないキャッシュのサファリはどうにも困ったやつだ。サファリユーザーは気をつけた方がよいとおもう。ご覧のウエブページはキャッシュに残った古いコンテンツかもしれない。おかしいと思ったら、リロードして、キャッシュをクリアして、それでもダメならFirafoxを起動してみよう。