HTMLアプリケーションキャッシュで単一URLの複数バージョンを管理する方法
HTML5のApplication Cache(AppCache)のマニフェストファイルでは、同じURLに対して異なるバージョンのファイルをキャッシュしたいというケースがあります。しかし、そのままでは古いキャッシュが残り、更新が反映されない問題が発生しがちです。ここでは、タイムスタンプを活用した確実な解決策を紹介します。
遠い未来の有効期限を設定する
まず、マニフェストのCACHEセクションに記載されたすべてのリソースには、遠い未来の日付(far-future expiration)を指定する必要があります。これにより、ブラウザがキャッシュ済みのファイルを即座に破棄せず、安定して保持できるようになります。
ファイル名にタイムスタンプを付加する
次に、CACHEセクション内の各ファイル名に、更新日時をもとにしたタイムスタンプをサフィックスとして追加します。
CACHE: menu_1355817388000.js toolbar_1355817389100.js
このようにすることで、ファイルの中身が更新されるたびに別のURLとして扱われ、ブラウザは必ず新しいファイルを取得するようになります。
ファイル更新時の手順
サーバー上のファイルに変更があった場合は、次の手順に従います。
- 変更対象のファイル名のタイムスタンプ部分を、新しい値に書き換えます。
- マニフェストファイル自体も必ず更新してください。マニフェストの内容が変化しない限り、ブラウザはそれを再ダウンロードしません。
- ユーザーが次にページへアクセスした際、タイムスタンプが更新されたファイルが自動的にダウンロードされ、キャッシュが差し替えられます。
まとめ
「遠い未来の有効期限+タイムスタンプ付きファイル名」の組み合わせにより、単一のリソースでも複数バージョンを確実にキャッシュ管理でき、古いキャッシュが残るトラブルを防げます。オフライン対応アプリケーションや静的アセットの配信において、非常に有効なテクニックです。
-
HTML DOMのtimeStampイベントプロパティとは?使い方とサンプルコードを解説
HTML DOM timeStampイベントプロパティの概要HTML DOMのtimeStampプロパティは、イベントが生成・発火された時点からの経過時間をミリ秒単位で返します。注意:timeStampは、対象のイベントがイベントシステムによってサポートされている場合にのみ機能します。すべてのイベントで利用できるわけではない点に留意してください。構文時間の値(ミリ秒)を取得するには、以下のように記述します。event.timeStampHTML DOM timeStampプロパティの使用例ここでは、timeStampプロパティを使った簡単なミニゲームの例を紹介します。緑色の「安全エリア」内でカ
-
HTML DOM URLプロパティとは?使い方とサンプルコードを解説
HTML DOM の URL プロパティは、現在のドキュメント(ページ)の URL に対応する文字列を返すプロパティです。読み取り専用のため、JavaScript からページの完全な URL を簡単に取得できます。 構文 URL プロパティの値を取得する基本的な構文は以下の通りです。 document.URL このプロパティは引数を取らず、ドキュメントの URL を文字列として返します。なお、類似の機能を持つ document.location.href との違いとして、document.URL は読み取り専用である点が挙げられます。 HTML DOM URL プロパティの使用例 ここでは、ボ