Web アプリは PC に劣りません。オフライン アプリケーションの重要性はますます高まっていますが、通常の状況では HTML ファイルは信頼できません。インターネットの登場後はすべてが終わりました。
マニフェストとは何ですか?
簡単に言うと、マニフェストを使用すると、ネットワーク接続がなくてもアプリケーションにアクセスできるようになります。
それには 3 つの大きな利点 があります:
1. オフライン閲覧、ネットワークなしでも通常のアクセス。
2. 読み込み速度が速くなり、キャッシュされたローカル アクセス速度も自然に速くなります。3. ファイルがキャッシュされた後は、再度リクエストする必要はなく、必要なファイルのみを更新することで、サービス リクエストの負荷を軽減します。
使い方は?
Manifest 属性では絶対 URL または相対パスを指定できます。ただし、絶対 URL は Web アプリと同じ生成元のものである必要があります。マニフェスト ファイルには任意の拡張子ファイル タイプを使用できますが、Apache で
を追加するなど、正しい MIME タイプが必要です。「AddType text/cache-manifest .appcache」。
マニフェストファイルマニフェスト ファイルは、何がキャッシュされるか (何がキャッシュされないのか) をブラウザーに伝える単純なテキスト ファイルです。
マニフェスト ファイルは 3 つの部分に分けることができます:
キャッシュ マニフェスト - この見出しの下にリストされているファイルは、最初のダウンロード後にキャッシュされます
ネットワーク - ファイル内の この見出しの下にリストされているファイルはサーバーへの接続が必要であり、キャッシュされません
FALLBACK - この見出しの下にリストされているファイルは、ページにアクセスできない場合のフォールバックを指定します (404 など)ページ)
完全なマニフェスト ファイル:
NETWORK:*
FALLBACK はインターネット接続の場合です接続を確立できない場合は、「404.html」を使用して /html5/ ディレクトリ内のすべてのファイルを置き換えます。
マニフェスト キャッシュを更新するには、次の 3 つの方法があります。1. マニフェスト ファイルが変更された場合でも、ユーザーがクリアします。はコメントです (コメントで変更してファイルを更新できます)
3. プログラムによる更新
キャッシュ ステータス
window.applicationCache プロパティを通じてプログラム内のキャッシュ ステータスを表示できます。
プログラムでキャッシュを更新するには、まず applicationCache.update() を呼び出します。これにより、ユーザーのキャッシュの更新が試行されます (マニフェスト ファイルが変更されている必要があります)。最後に、applicationCache.status が UPDATEREADY 状態のときに applicationCache.swapCache() を呼び出すと、古いキャッシュが新しいキャッシュに置き換えられます。
注: このように update() と swapCache() を使用しても、更新されたリソースはユーザーに表示されません。これにより、ブラウザーはマニフェスト ファイルが更新されたかどうかを確認し、指定された更新コンテンツをダウンロードしてアプリのキャッシュを再作成できるようになります。したがって、ユーザーが更新されたコンテンツを表示するには、2 つのページのダウンロードが必要です。1 つはアプリのキャッシュを更新し、もう 1 つはページのコンテンツを更新します。
ユーザーがサイトの最新バージョンを表示できるようにするには、ページの読み込み時に updateready イベントをリッスンするリスナーを設定します。
イベントをリッスンし、それに応じてさまざまな状態を処理します:
マニフェスト ファイルまたはファイル内で指定されたリソースのダウンロードに失敗すると、更新全体が失敗します。この場合、ブラウザは引き続き古いアプリケーション キャッシュを試行します。
注:
1. サイトのオフライン ストレージの容量制限は 5M です
2. マニフェスト ファイルまたは内部にリストされているファイルを正常にダウンロードできない場合、更新プロセス全体が失敗とみなされ、ブラウザは続行されます。古いキャッシュを使用するには
3. マニフェストを参照する HTML はマニフェスト ファイルと同じ生成元を持ち、同じドメイン内にある必要があります。
4. マニフェストで使用される相対パス。相対参照はマニフェストです。ファイル
5. 最初の行には CACHE MANIFEST 文字列が必要です。
6. システムはマニフェスト ファイルを参照する HTML ファイルを自動的にキャッシュします
7. マニフェスト ファイル内の CACHE には何もありません。 NETWORK と FALLBACK の位置順序に関係するため、暗黙的な宣言の場合は、Front
8 にある必要があります。リソースの場合、FALLBACK のリソースはマニフェスト ファイルと同じオリジンを持つ必要があります。がキャッシュされている場合、ブラウザは絶対パスを直接要求し、キャッシュ内のリソースにもアクセスします。
10. サイト内の他のページにマニフェスト属性が設定されていない場合でも、リクエストされたリソースがキャッシュ内にある場合は、キャッシュからアクセスされます。
11. マニフェスト ファイルが変更されると、リソース リクエスト自体が変更されます。アップデートをトリガーします
原文: