目次 |
---|
・アプリケーションキャッシュとは ・アプリケーションキャッシュの使い方 ・Application cache API ・アプリケーションキャッシュの必要性 |
アプリケーションキャッシュとは、「オフライン機能」とも呼ばれるものです。
正式には「Offline Web Applications」のうちの「Offline Application Caching APIs」を主に指します。
(「Offline Web Applications」には、「Local Strage」や「Web SQL Database」なども含まれますが、ここでは上記に絞って解説します。)
オフラインでもWEBアプリを利用できるようにする機能(API)です。
WEBアプリが使用するリソース(HTML/CSS/スクリプト/画像など)をローカルにキャッシュするための仕組みです。
アプリケーションキャッシュは、2011年8月現在以下のブラウザで対応しています。
FireFox 3.5~、Safari 4~、Opera 10.6~、Google Chrome 5~
(IEでは10~の予定)
何をキャッシュするか、オフライン時どのように振る舞うのかを定義したファイルを作ります。
UTF-8のテキストファイルを用意します。
拡張子は「.appcache」とします。
(文献によっては、「.manifest」を使っているものもありますが、windowsのアプリケーションマニフェスト(アプリケーションの特徴付け)にも同じ拡張子が使われます。そのため混同を避ける意味で「.appcache」とします。)
保存場所はWEBアプリケーションのルートとします。,br/>
マニフェストファイルは以下のように記述します。
# この行はコメント扱いです。
マニフェストファイルをサーバで扱えるようにMIMEタイプを設定します。
そのままでは、キャッシュマニフェストに対応していないのでMIMEタイプを設定する必要があります。
以下は、apacheの場合の設定です。
「httpd.conf」などで設定することも可能ですが、「.htaccess」が使用可能ならばドキュメントルートの「.htaccess」に下記を追記した方が簡単です。
マニフェストファイルをページ/WEBアプリケーション毎に宣言したい場合、<html>要素内の「manifest」属性で、マニフェストファイルを宣言します。
キャッシュを更新させたい場合、マニフェストファイルを更新する必要があります。
マニフェストファイル内にコメントで更新日付などを書き入れることにより、マニフェストファイルのファイル更新日時が変わります。
それを利用してキャッシュを更新させます。
JavaScriptで利用出来るオブジェクトは window.applicationCache です。
以下のメソッドを使い更新します。
アプリケーションキャッシュに関するイベントは以下の通りです。
更新状態を得るには、window.applicationCache.statusで以下のステータスコードを得ます。
アプリケーションキャッシュは、まだ途上の仕様です。
全てのブラウザが、2011年8月現在 フル対応しているとは言えません。
(特にIEに関しては、次期バージョン 10まで未対応)
しかし、2011年8月現在 特に必要とされる仕様です。
アプリケーションキャッシュを最も必要とし、その威力を発揮するのはスマートフォンです。
そのため、Google ChromeやApple Safariなど、仕様を忠実に実装するよう進めています。
スマートフォンの場合、Wifi下での利用だけでなく、3G回線下で利用します。
通信速度が遅い3G回線下で、ストレスなく利用するためには、キャッシュを有効に利用する必要があります。
また、WEBアプリケーションをスマートフォンのアプリとして利用する場合、不通区間での利用にはキャッシュが必須です。
モバイル使用が前提のスマートフォンには、アプリケーションキャッシュが必須なのです。