強力なXMLファイルのキャッシュを利用しない Tips です。
Google Maps API では、手軽に XMLファイル を読み込ませることができまが、読み込んだXMLファイルはキャッシュされてしまい、通常の方法(Shift+リロードなど)では、キャッシュが解除されません。
本Tips では、URLに常に異なる引数を与え、キャッシュを利用しないを紹介します。
動作するブラウザは下記の通りです。
IE | Firefox | Netscape | Opera | Safari |
---|---|---|---|---|
○ | ○ | ○ | ○ | ○ |
このスクリプトがそのまま使えるツールは下記の通りです。
GME |
---|
- |
ファイル名(hogehoge.xml)及び変数(filename) は各環境によって異なります。
常に異なるURLにすれば、ブラウザは違うファイルとみなし、キャッシュを使わずに新たにファイルを読み込みます。異なるURLにするのは簡単で、ランダムの引数(パラメータ)をURLの最後に付加するだけです。
上記ソースにて、ファイル名は hogehoge.xml?rand=0.45126197495902526 や hogehoge.xml?rand=0.1376640852805438 などのランダムな数値が付加されるようになります。
なお、xmlファイルを通常に読み込む場合、この方法で何らかの弊害が発生することはありません。
サーバーサイドプログラムなどで引数がある場合は "?rand=" を "&rand"= にして下さい。また、サーバーサイドプログラム側で rand という引数を使っていないか確認して下さい。
ちなみに、rand という文字列は任意の文字(英数字及び一部記号)に変更可能です。
キャッシュは必ずしも悪ではなく、何度も同じファイルを読み込まないという便利な機能です。ですので、頻繁にマップが変わらないような場合は、キャッシュする設定にしておいた方がいいです。
開発時(developer_mode などの変数で判別)にのみキャッシュするような仕組みにするといいでしょう。