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)をつけることで、ブラウザのキャッシュを避けるのが一般的のようです。
カテゴリー:Windowsアプリ