ASでonLoad,LoadVarsなどで読み込む外部データが更新されない
2007.06.23
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)をつけることで、ブラウザのキャッシュを避けるのが一般的のようです。
カテゴリー:技術情報メモ