feb19.jp

Nobuhiro Takahashi
Designer / Engineer

Flash周りのキャッシュ対策

Flash周りのキャッシュ対策

SWFファイルやそのSWFで読み込んだ外部テキストや外部XMLは、ユーザーのブラウザキャッシュに残ります。そのため、再びサイトに訪れたユーザーはキャッシュされたそのSWFファイルを読みます。これは一度見たサイトはすばやく閲覧できるという意味ではいいのですが、常に新しい内容が更新されるSWFの場合は、更新された情報が反映されないため、このファイルをキャッシュに残させない「キャッシュ対策」が必要になります。

SWFファイルのキャッシュ対策

SWFファイルを挿入しているHTMLファイルの内に以下のmetaタグを追加します。

1. キャッシュの有効期限を過去のものにする

<meta http-equiv="Expires" content="Mon, 04 Dec 1999 20:20:20 GMT" />

このmetaタグはキャッシュの有効期限を表しています。わざと過去の日付をキャッシュの有効期限にすることによって、ブラウザはキャッシュの期限が切れたと認識し、サーバーからオリジナルのファイルをダウンロードします。ただし未確認ですが、この指定をしたとしてもキャッシュのファイルを表示してしまう場合があるようです。(参考:キャッシュの有効期限を指定する)

2. まったくキャッシュされないようにする

<meta http-equiv="PRAGMA" content="NO-CHACHE" />

このmetaタグはブラウザにキャッシュしないように伝えます。ただしIE5などではこの方法は使えないようです。(参考:ページをキャッシュさせない)

一枚広告のサイトや、Flashムービーコンテンツのようなあまり更新しないようなものは、あまりキャッシュ対策を行わない方がいいのではないかと思ったりもします。そのへんは臨機応変に。

外部XMLや外部テキストのキャッシュ対策

//設定ファイル読込処理(キャッシュ対策)

var nowDate:Date = new Date();
var fileurl:String = "test.txt?="+ nowDate;

読み込むファイルの名前のあとに、「?=」と、現在時刻(Dateコンストラクタで生成)をくっつけます。これでファイル名(URL)は「ファイル名+アクセスした現在時刻」というユニークな値になりますので、二度と同じURLを読みことはなく、SWFは常に新しいファイルとして外部ファイル/XMLを読むようになります。

Tweet Share Bookmark

Navigation

prev: Twitter入門
next: ランタイムビットマップキャッシュ(.cacheAsBitmap)

Recently Entries