メモ:外部ファイル読込み(キャッシュ)対策

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();

これだと重複することがないのでこちらがお勧め?

////////////////////////////////////////////
尚、これらに関しては私なりに調べて記した備忘録的なものです。
ご了承ください。

One thought on “メモ:外部ファイル読込み(キャッシュ)対策

  1. compo

    こんにちは。
    以前、この記事にXMLのキャッシュが取れなくて相談した者です。あれから色々検証して本日やっとXMLキャッシュを回避できました。
    本当にありがとうございました。

    返信

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


This site uses Akismet to reduce spam. Learn how your comment data is processed.