最終更新:  

Application Cache の変更点


[[HTML5]]

オフライン時でも[[Webアプリケーション]]を使えるようにキャッシュする仕組み

https://developer.mozilla.org/ja/Offline_resources_in_Firefox

https://html.spec.whatwg.org/#appcache

*ドキュメント [#nf04cf72]
-https://developer.mozilla.org/ja/docs/Web/HTML/Using_the_application_cache


*メモ [#g32f2860]
-現在進行中の 安全でない HTTP 廃止 の一環として、Firefox 60 Nightly と早期 Beta/DevEdition では、非 HTTPS サイト上での[[Application Cache]]([[AppCache]]) の使用が許可されなくなります。
-無効化された場合、キャッシュマニフェストファイルは無視され [[window.applicationCache]] は undefined となります。
-特に大きな問題がなければ、[[Firefox 62]]ですべてのチャンネルにおいてこの変更が行われます。


*利点 [#b4ec71b7]
-オフラインブラウジング: ユーザーがオフラインのときでも、すべてのサイトにアクセスできます。
-高速: キャッシュされたリソースはローカルなので、高速に読み込まれます。
-サーバー負荷の軽減: ブラウザは、変更があったリソースのみをサーバーからダウンロードします。


*チュートリアル [#ca9353e4]
-http://www.html5rocks.com/ja/tutorials/appcache/beginner/

*キャッシュマニフェストファイル [#x5484971]
-オフラインアクセスに備えてブラウザがキャッシュする必要があるリソースを列挙した、単純なテキストファイル
-キャッシュファイルを更新するようにブラウザに通知するには、マニフェスト ファイルを変更する必要がある。
-ひとつでもエラーがあると全体がキャッシュされない(構文エラー や404など) 

**読み込み [#k1b0bce5]
-
#geshi(html){{
<html manifest="example.appcache">
  ...
</html>
}}

**拡張子 [#ade1e03f]
-[[.manifest]]から[[.appcache]]に変更があった

**[[MIMEタイプ]] [#o1dddac8]
-[[text/cache-manifest]]で提供する必要がある。
 AddType text/cache-manifest .appcache

**フォーマット [#p4363369]
-CACHE MANIFEST
--CACHE: - 初めてダウンロードされた後、明示的にキャッシュされます。
--NETWORK: - ユーザーがオフラインでも、これらのリソースに対するすべての要求はキャッシュをバイパスします。ワイルドカードを使用できます。
--FALLBACK: - リソースにアクセスできない場合のフォールバック ページを指定

**ツール [#z52489a4]
-[[Cache Manifest Validator]]
-[[manifestR]]

*キャッシュの更新 [#y0554518]
-アプリケーションがオフラインになると、次のいずれかが発生するまで、キャッシュされた状態が保たれます。
--ユーザーがブラウザでサイトのデータ ストレージをクリアする。
--マニフェスト ファイルが変更される。
---''※: マニフェストに列挙されているファイルを更新しても、ブラウザはそのリソースを再キャッシュしません。マニフェスト ファイル自体を変更する必要があります。 ''
--アプリケーション キャッシュをプログラムで更新する。

*[[window.applicationCache]] [#n6f0930c]
-[[window.applicationCache]] オブジェクトを使用すると、ブラウザのアプリケーション キャッシュにプログラムからアクセスできます。

--プログラムでキャッシュを更新するには、まず applicationCache.update() を呼び出します。これにより、ユーザーのキャッシュの更新が試行されます(この処理のために、マニフェスト ファイルを変更しておく必要があります)。
--最後に、applicationCache.status が UPDATEREADY 状態の場合、applicationCache.swapCache() を呼び出すと、古いキャッシュは新しいキャッシュに置き換えられます。
*[[Google Chrome]] [#cb6126e2]
-サイトのキャッシュ データは 5MB 相当に制限されます。ただし、[[Chromeウェブストア]]向けのアプリケーションを作成する場合は、unlimitedStorage を使用するとこの制限はなくなります。

*参考 [#w614573d]
-http://www.html5.jp/trans/w3c_offline_webapps.html
-http://www.whatwg.org/specs/web-apps/current-work/multipage/offline.html
-http://www.whatwg.org/specs/web-apps/current-work/#applicationcache
-http://www.w3.org/TR/2008/WD-html5-20080122/#appcache
-https://developer.mozilla.org/en/Offline_resources_in_Firefox