アプリケーションキャッシュとはWebアプリケーションをローカルにキャッシュさせておくことで、オフライン時もURLを入力するとアクセスが可能になるという仕組みでHTML5で導入されました。
キャッシュの更新はマニフェストファイルと呼ばれる構成ファイルの情報を読み取ることにより制御されます。
マニフェストファイルはテキスト形式のファイルで、キャッシュするファイル名が列挙されています。
以下がマニフェストファイルの例です。ファイル名は*.appcacheと付けるのが一般的です。
例:manifest.appcache
キャッシュを更新する際は、マニフェストファイルのTimestampを更新時間に書き換えます。
マニフェストファイルの書式
以下がマニフェストファイルの例です。
CACHE MANIFEST # Timestamp: 201410290000 CACHE: app.html style.css js.js SETTINGS: prefer-online NETWORK: *
マニフェストファイルの記述ルール
- 1行目にCACHE MANIFESTを記述する
- セクションを開始するにはセクション名の末尾にコロンをつけて改行する。
- セクションの範囲は次のセクションが始まるまで
- 同じセクションが何回も登場しても良い
- セクションには以下の4つがある
- CACHE
- FALLBACK
- NETWORK
- SETTINGS
- CACHE
このセクションに記述されたファイルはキャッシュされます。また、セクションを指定しない場合は暗黙的にCACHEセクションとなります。
- FALLBACK
アクセスできなかった場合に代用のリソースを指定します。
FALLBACK: /home example.html
上記例では/homeで始まるURLはアクセスできなかった場合にexample.htmlを表示するという意味になります。
- NETWORK
このセクションに書かれたリソースはキャッシュを参照せず、サーバから取得します。(ブラウザ自体のパフォーマンス向上目的のキャッシュは有効)
NETWORK: /api/
上記例では/api以下のリクエストは必ずサーバへ飛ばすようになります。
*を指定した場合は、マニフェストファイルに書かれていないリソースはネットワークから取得されるようになります。
- SETTINGS
アプリケーションキャッシュの設定を行う項目ですが、現在はprefer-onlineのみ指定可能です。
SETTINGS: prefer-online
prefer-onlineを指定するとアプリケーションキャッシュはオフライン時のみ利用されるようになりオンライン時はネットワークからリソースを取得するようになります。
マニフェストファイルの適用
マニフェストファイルを適用させるには、サーバとhtmlを少しいじる必要が有ります。
apacheに次のMIMEを追加します。「text/cache-manifest manifest」
そして、html要素に下記のようにmanifest属性を追加することでマニフェストファイルが適用されるようになります。
<!DOCTYPE html> <html manifest="manifest.appcache"> :
- 関連記事
-
-
fc2ブログのテンプレで画像をはみ出ないようにする一行 2015/01/25
-
HTMLとCSS3で某ゲームのポーズ画面のようなメニューを書いてみた 2015/01/06
-
アプリケーションキャッシュ manifest.appcache 2014/10/29
-
background-*プロパティ 2014/10/27
-
HTML5 figure, figcaption要素 2014/10/26
-