オフラインwebアプリケーションについて
以前の投稿でOffline Web Applications について記載しましたが、ここでもう少し掘り下げて調べてみます。
注意点としては、この機能は現状では非推奨となっているので、
「こうゆう機能もある(あった)」という程度に留めておいてよいと思います。
(firefox62以降では使用できません)
オフラインwebアプリケーションを実現には、HTML5の仕組みのアプリケーションキャッシュ機能を使います。
具体的にはアプリケーション自身(HTML、CSS、javascript、画像、音声等のリソースを含む)のデータを全て保存します。
ブラウザのキャッシュとは違うので、ブラウザのキャッシュクリアをしてもデータは削除されず、
ユーザが意図して消さない限りは永続的に残ります。
こうすることでそのwebアプリケーションはオフライン環境でも動作する(アプリケーションからの通信を行わない前提になります)
ことが可能になります。
厳密に言うと、アプリケーションから通信が発生した場合、オンラインに切り替わった段階で通信処理が再開する。という動きになります。
また、全てのブラウザ(バージョン)で動作が保証されてはいないので、実行環境には注意が必要です。
アプリケーションキャッシュマニフェストについて
webアプリケーションキャッシュを使うには、マニフェストファイルが必要になります。
このファイルにはwebアプリケーションが必要とするURLの一覧が含まれています。
マニュフェストファイルの書き方
1行目に
[js]
CACHE MANIFEST
[/js]
を記載します。
コメントは
[js]
#
[/js]
と書きます。
セクションは
[js]
CACHE
NETWORK
FALLBACK
SETTINGS
[/js]
があり、それぞれ次の意味になります。
[js]
CACHE
キャッシュするファイルを指定する
NETWORK
ここに書いたファイルはオンラインでサーバ接続が必要
FALLBACK
もしオンラインで接続することができない場合、ここに書いた代替のファイルにアクセスします。
[/js]
具体的には以下のように書きます。
各ファイル名はダミーです。
[js]
CACHE MANIFEST
# ver1.0
CACHE:
test.html
test.css
test.js
images/test.png
NETWORK:
*
FALLBACK:
/fallback.php /dummy.html
[/js]
マニュフェストファイルが更新された際に、キャッシュ内容の更新を行う為に、
2行目にはバージョン番号を記載することが多いです。
マニュフェストファイル自身の拡張子は指定されていません。
慣習的に.appcache等と指定する場合があります。
既に非推奨の機能なので、ここで実例を試すことはしませんが、後日、何か検証が必要な場面がでてきたら追記するかもしれません。