Flashで外部のテキストファイル等を読み込む場合、IEだけであるがキャッシュがネックになって再読込みした結果が反映されない。
他のブラウザなら無視もするであろうがIEだけに問題。
いろいろ調べてみるとファイル名を細工してIEブラウザに同じファイルであると認識させなければよいとのこと、たとえばXMLファイルの読込みに乱数を利用してみる
var xmlFile:String = "test.xml"; //外部XMLファイル
var dummy:Number= Math.round(Math.random()*1000000); //ダミーの乱数
//乱数をつけてファイルのURLを偽装
var fileURL:String = xmlFile + "?reload=" + dummy.toString();
//XMLファイル読込み
var dataXML:XML = new XML();
dataXML.load(fileURL);
/////////////////////////////////////////////
XMLConnectorを使う場合は以下のように
import mx.data.components.XMLConnector;
var xmlFile:String = "test.xml"; //外部XMLファイル
var dummy:Number= Math.round(Math.random()*1000000);
fileURL = fileURL + "?reload=" + dummy.toString();
var compo:XMLConnector;
compo.URL=fileURL;
compo.trigger();
/////////* 補足 *////////////////////////
var dummy:Number= Math.round(Math.random()*1000000);
の変わりに
var dummy:String=(new Date()).getTime().toString();
これだと重複することがないのでこちらがお勧め?
////////////////////////////////////////////
尚、これらに関しては私なりに調べて記した備忘録的なものです。
ご了承ください。
こんにちは。
以前、この記事にXMLのキャッシュが取れなくて相談した者です。あれから色々検証して本日やっとXMLキャッシュを回避できました。
本当にありがとうございました。