IT Rescue IT関連Tips情報

ASでonLoad,LoadVarsなどで読み込む外部データが更新されない

2007年6月23日Windowsアプリ

Flashのアクションスクリプトには、onLoad, LoadVarsなどで外部データを読み込む事が出来ます。
一定の間隔で、読み込むデータが更新される場合、ASからも一定間隔で外部データを読み込んで更新されたデータに応じて、Flashの挙動を変えたいという場合もあると思います。

ちょっと注意しないと、キャッシュされた外部データを使ってしまい、更新されている外部データをうまく取得できない場合があります。
今回、ASから、
 foo/bar.cgi
をコールし、外部データを取得していました。これを、5分間隔程度で再読み込みし、更新されたデータを基にFlash側の挙動を変えていました。

ところが、Flashを表示する端末・ブラウザによって、更新されたデータを取得できたり出来なかったり。サーバ側のログを見ると、取得できるケースはきちんと5分間隔でfoo/bar.cgiにアクセスに来ているが、更新されないケースは、アクセス自体来ないという状況です。
これは、ブラウザ側のキャッシュの扱いが原因のようで、IE(InternetExplorer)では、

「ツール」-「インターネットオプション」を開き、「全般」タブの”インターネット一時ファイル”の”設定”を押し、”ページを表示するごとに確認する”に設定する

という方法で、5分間隔のアクセスをするようになりました。
(その他のブラウザはちょっと分かりません。)

今回は、Flashを表示するブラウザが固定のものだったり、ソースの変更は避けたかったので上記対応をしました。

不特定のブラウザで表示させるケースの場合は、呼び出す外部ファイル(今回で言えば foo/bar.cgi)に、時刻などを基に、不要なパラメータ(foo/bar.cgi?aaa=2007062301142337)をつけることで、ブラウザのキャッシュを避けるのが一般的のようです。


コメントをどうぞ

免責事項

著作権者の文書による承諾を得ずに、本サイトの内容の一部、全部を無断で複写、複製、転載することは、禁じられています。
また、当ウェブサイト に記載された情報の完全性・正確性に対して一切の保証を与えるものではありません。当ウェブサイトに含まれる情報もしくは内容を利用することで直接・間接的に生じた損失に関し一切責任を負わないものとします。