EntryNavi : « 最大級?プッチンプリン(400g) | メイン | 丹沢大山観光 »

CategoryNavi : メイン -> コンピューター -> 開発 -> Flash

FlashのloadVariablesを使用したときのIEのキャッシュを回避する方法

Flashで、loadVariablesを使用してcgiなどから値を受け取る処理をした場合に、IEのキャッシュが効いて毎回同じ結果を得てしまう場合があります。

おかげでドップリはまりましたが・・・。
それの回避方法です。

コチラを参考にしました。

CGIやローカルファイルへのアドレス(パス)毎回同じためにキャッシュが効いているようなので、例えば、「http://hoge.com/hoge.cgi?DUMMY=<乱数>」として同じアドレスにならないようすればOKです。
が、こちらの解説だと乱数を使用して同じアドレスにならないようにしているので、いつかは同じ値になってしまう場合があります。
更新頻度が多ければなおさらです。
ちなみに、↑の<乱数>を0と1を交互に繰り返すとNGです。

なので、実際には下記のようにします。
Dateオブジェクトの、「getTime」を使用して、1970/1/1からの経過時間をミリ秒で取得して使用しています。
こうすれば、サーバーの時計が戻らない限り同じ値になる心配はありません。


_global.cgi_data = "dummy";

this.createEmptyMovieClip("loadTarget_mc", this.getNextHighestDepth());
this.loadTarget_mc.onData = function() {
trace("Data Loaded"); //デバッグ出力
_global.cgi_data = this.cgi_data;
};

var today_date:Date = new Date();
Num = "T" + today_date.getTime(); //1970/1/1からの経過時間を取得
trace("Num" + Num); //デバッグ出力
loadVariables("http://hoge.com/hoge.cgi?" + Num , this.loadTarget_mc);

<Category : Flash>

検索

Google

サイドフィード

track feed 理ろぐ
人気ブログランキング - 理ろぐ
Powered by
Movable Type 3.34