ホームページ ウェブフロントエンド H5 チュートリアル HTML5 は ApplicationCache インターフェイスを使用してオフライン キャッシング テクノロジーを実装し、オフラインの問題を解決します_html5 チュートリアル スキル

HTML5 は ApplicationCache インターフェイスを使用してオフライン キャッシング テクノロジーを実装し、オフラインの問題を解決します_html5 チュートリアル スキル

May 16, 2016 pm 03:50 PM

はじめに
Web ベースのアプリケーションにとって、オフライン アクセスの重要性はますます高まっています。すべてのブラウザにはキャッシュ メカニズムが備わっていますが、信頼性が低く、常に期待どおりに動作するとは限りません。 HTML5 は、ApplicationCache インターフェイスを使用して、オフラインによって引き起こされる問題の一部を解決します。
キャッシュ インターフェイスを使用すると、アプリケーションに次の 3 つの利点がもたらされます:
オフライン ブラウジング – ユーザーはオフラインでも Web サイト全体を閲覧できます
速度 – キャッシュされたリソースはローカル リソースであるため、読み込み速度が速くなります。
サーバー負荷の軽減 – ブラウザーは、変更されたサーバーからのみリソースをダウンロードします。

アプリケーション キャッシュ (AppCache とも呼ばれます) を使用すると、開発者はオフライン ユーザーのためにブラウザがどのファイルをキャッシュするかを指定できます。ユーザーがオフライン中に更新ボタンを押した場合でも、アプリは正常に読み込まれて実行されます。
キャッシュ マニフェスト ファイル
キャッシュ マニフェスト ファイルは、ブラウザがオフライン アクセスのためにキャッシュする必要があるリソースをリストした単純なテキスト ファイルです。
マニフェスト ファイルを参照してください
アプリケーションのアプリケーション キャッシュを有効にするには、ドキュメントの HTML タグにマニフェスト属性を追加します:

コードをコピー
コードは次のとおりです:


...


キャッシュする Web アプリケーションのすべてのページに、manifest 属性を追加する必要があります。 Web ページにマニフェスト属性が含まれていない場合、ブラウザはそのページをキャッシュしません (属性がマニフェスト ファイルに明示的にリストされている場合を除く)。これは、ユーザーが閲覧するマニフェストを含むすべての Web ページが暗黙的にアプリケーション キャッシュに追加されることを意味します。したがって、在庫内のすべてのページをリストする必要はありません。
マニフェスト属性は絶対 URL または相対パスを指すことができますが、絶対 URL は対応する Web アプリケーションと同じオリジンを持つ必要があります。マニフェスト ファイルには任意のファイル拡張子を使用できますが、正しい MIME タイプで提供する必要があります (下記を参照)。

コードをコピー
コードは次のとおりです:


...


マニフェスト ファイルは text/cache-manifest MIME タイプとして提供する必要があります。カスタム ファイル タイプを Web サーバーまたは .htaccess 構成に追加する必要がある場合があります。
たとえば、この MIME タイプを Apache で提供するには、次の行を構成ファイルに追加します。
AddType text/cache-manifest .appcache これを Google App Engine の app.yaml ファイルで提供するには、MIME タイプを追加します。以下:
- URL: /mystaticdir/(.*.appcache)
static_files: mystaticdir/1
mime_type: text/cache-manifest
upload: mystaticdir/(.*.appcache) マニフェスト ファイル構造体
単純なマニフェストの形式は次のとおりです。
CACHE MANIFEST
index.html
stylesheet.css
images/logo.png
scripts/main.js この例では 4 つをキャッシュします。このマニフェスト ファイルを指定する Web ページ上のファイル。
次の点に注意する必要があります:
CACHE MANIFEST 文字列は最初の行にある必要があり、必須です。
Web サイトのキャッシュ データ サイズは 5 MB を超えてはなりません。ただし、Chrome ウェブストア用のアプリを作成している場合は、unlimitedStorage を使用してこの制限を解除できます。
マニフェスト ファイルまたはマニフェスト ファイルに指定されているリソースをダウンロードできない場合、キャッシュ更新プロセス全体が続行されません。この場合、ブラウザは元のアプリケーション キャッシュを引き続き使用します。
より複雑な例を見てみましょう:
CACHE MANIFEST
# 2010-06-18:v2
# 明示的にキャッシュされた 'マスター エントリ'
CACHE:
/favicon.ico
index.html
stylesheet.css
images/logo.png
scripts/main.js
# ユーザーがオンラインである必要があるリソース
ネットワーク:
login.php
/myapi
http://api.twitter.com
# main.py にアクセスできない場合は static.html が提供されます
# offline.jpg は、images/large/ 内のすべての画像の代わりに提供されます
# offline.html は、他のすべての .html ファイルの代わりに提供されます
FALLBACK:
/ main.py /static.html
images/large/images/offline.jpg
*.html /offline.html 「#」で始まる行はコメント行ですが、他の目的にも使用できます。アプリのキャッシュは、マニフェスト ファイルが変更された場合にのみ更新されます。たとえば、画像リソースを変更したり、JavaScript 関数を変更した場合、それらの変更は再キャッシュされません。ブラウザがキャッシュ ファイルを更新できるようにするには、マニフェスト ファイル自体を変更する必要があります。生成されたバージョン番号、ファイル ハッシュ、またはタイムスタンプを含むコメント行を作成すると、ユーザーはソフトウェアの最新バージョンを確実に入手できます。 「キャッシュの更新」セクションで説明されているように、新しいバージョンが利用可能になったときに、プログラムでキャッシュを更新することもできます。
マニフェストには、CACHE、NETWORK、FALLBACK の 3 つの異なるセクションを含めることができます。
CACHE:
これはエントリのデフォルトの部分です。このヘッダーの下にリストされているファイル (または CACHE MANIFEST の直後のファイル) は、初めてダウンロードされるときに明示的にキャッシュされます。
ネットワーク:
このセクションにリストされているファイルは、サーバーに接続する必要があるホワイトリストに登録されたリソースです。これらのリソースに対するすべてのリクエストは、ユーザーがオフラインであるかどうかに関係なく、キャッシュをバイパスします。ワイルドカード文字を使用できます。
FALLBACK:
このセクションはオプションであり、リソースにアクセスできない場合にフォールバック ページを指定するために使用されます。最初の URI はリソースを表し、2 番目の URI はフォールバック Web ページを表します。両方の URI は関連している必要があり、マニフェスト ファイルと同じ生成元を持つ必要があります。ワイルドカード文字を使用できます。
注意: これらのセクションは任意の順序で配置でき、各セクションは同じリスト内に繰り返し表示できます。
次のリストは、ユーザーがオフラインでサイトのルートにアクセスしようとしたときに表示される「総合」ページ (offline.html) を定義します。また、他のすべてのリソース (リモート サイト上のリソースなど) には、インターネット接続。
CACHE MANIFEST
# 2010-06-18:v3
# 明示的にキャッシュされたエントリ
index.html
css/style.css
# offline.html は、ユーザーが次の場合に表示されます。オフラインです
FALLBACK:
/ /offline.html
# 他のすべてのリソース (サイトなど) では、ユーザーがオンラインである必要があります。
NETWORK:
*
# キャッシュする追加のリソース
キャッシュ:
images/logo1.png
images/logo2.png
images/logo3.png 注意: マニフェスト ファイルを参照する HTML ファイルは自動的にキャッシュされます。したがって、リストに追加する必要はありませんが、追加することをお勧めします。
注意事項: SSL 経由で提供されるページに設定されている HTTP キャッシュ ヘッダーとキャッシュ制限は、キャッシュ マニフェストに置き換えられます。したがって、https 経由で提供される Web ページはオフラインで実行できます。

キャッシュの更新
次のいずれかが発生しない限り、アプリはオフラインでもキャッシュされたままになります:
ユーザーが Web サイトのブラウザーのデータ ストレージをクリアします。
マニフェスト ファイルが変更されました。注: マニフェストにリストされているファイルを更新しても、ブラウザがリソースを再キャッシュするわけではありません。マニフェスト ファイル自体を変更する必要があります。
アプリのキャッシュはプログラムによって更新されます。

キャッシュ ステータス
window.applicationCache オブジェクトは、ブラウザのアプリケーション キャッシュへのプログラムによるアクセスを提供します。その status 属性を使用して、キャッシュの現在のステータスを表示できます:

コードをコピーします
コードは次のとおりです。

var appCache = window.applicationCache; >switch ( appCache.status) {
case appCache.UNCACHED: // UNCACHED == 0
return 'UNCACHED';
case appCache.IDLE: // IDLE == 1
return 'IDLE';
case appCache.CHECKING: // CHECKING == 2
return 'CHECKING';
case appCache.DOWNLOADING: // == 3
return 'DOWNLOADING';
break;
case appCache.UPDATEREADY == 4
return 'UPDATEREADY';
break; : // OBSOLETE == 5
return 'OBSOLETE'
default:
return 'UKNOWN CACHE STATUS'

プログラムでキャッシュを更新するには、まず applicationCache.update() を呼び出します。この操作では、ユーザーのキャッシュの更新が試行されます (マニフェスト ファイルが変更されている場合)。最後に、applicationCache.status が UPDATEREADY 状態の場合、applicationCache.swapCache() を呼び出して、元のキャッシュを新しいキャッシュに置き換えます。





コードをコピーします

コードは次のとおりです:

var appCache = window.applicationCache ;
appCache.update(); // ユーザーのキャッシュを更新しようとします。... if (appCache.status == window.applicationCache.UPDATEREADY) { appCache.swapCache() ; // フェッチは成功しました。新しいキャッシュにスワップします。
注意してください
: この方法で update() と swapCache() を使用すると、ユーザー リソースを更新しました。このプロセスでは、ブラウザーが新しいマニフェストを確認し、指定された更新をダウンロードし、アプリのキャッシュを再設定するだけです。したがって、ユーザーに新しいコンテンツを提供するには、Web ページを 2 回リロードする必要があります。1 回目は新しいアプリケーション キャッシュを取得し、2 回目は Web ページ コンテンツを更新します。
幸いなことに、2 回リロードする手間を省くことができます。ユーザーを Web サイトの最新バージョンに更新するには、Web ページのロード時に updateready イベントをリッスンするリスナーを設定できます:




コードをコピー
コードは次のとおりです。


// ページの読み込み時に新しいキャッシュが利用可能かどうかを確認します。
window.addEventListener('load', function( e) {
window.applicationCache.addEventListener('updateready', function(e) { if (window.applicationCache.status == window.applicationCache.UPDATEREADY) { // ブラウザが新しいアプリをダウンロードしました// スワップしてページをリロードして、新しいホットネスを取得します。 if (confirm('このサイトの新しいバージョンが利用可能です。ロードしてください) ?')) {
window.reload();
}
} else {
// サーバーには何も変更されていません。 , false);
}, false );



APPCACHE EVENTS

ご想像のとおり、キャッシュのステータスを監視するために追加のイベントが使用されます。ブラウザーは、ダウンロードの進行状況、アプリケーション キャッシュの更新、エラー ステータスなどに対応するイベントをトリガーします。次のコード スニペットは、キャッシュ イベント タイプごとにイベント リスナーを設定します。





コードをコピーします

コードは次のとおりです。

function handleCacheEvent(e) {
//...
}
function handleCacheError(e) {
alert('エラー: キャッシュの更新に失敗しました!');
};
// マニフェストの最初のキャッシュの後に起動されます。
appCache.addEventListener('cached', handleCacheEvent, false);
// アップデートをチェックしています。常にシーケンス内で最初のイベントが発生します。
appCache.addEventListener('checking', handleCacheEvent, false);
// アップデートが見つかりました。ブラウザがリソースを取得しています。
appCache.addEventListener('ダウンロード中', handleCacheEvent, false);
// マニフェストが 404 または 410 を返した、ダウンロードが失敗した、
// またはダウンロードの進行中にマニフェストが変更された。
appCache.addEventListener('error', handleCacheError, false);
// マニフェストの最初のダウンロード後に起動されます。
appCache.addEventListener('noupdate', handleCacheEvent, false);
// マニフェスト ファイルが 404 または 410 を返した場合に発生します。
// これにより、アプリケーション キャッシュが削除されます。
appCache.addEventListener('obsolete', handleCacheEvent, false);
// フェッチされるときに、マニフェストにリストされているリソースごとに起動されます。
appCache.addEventListener('progress', handleCacheEvent, false);
// マニフェスト リソースが新たに再ダウンロードされたときに発生します。
appCache.addEventListener('updateready', handleCacheEvent, false);

ファイルまたはその中で指定されたソースがダウンロードされない場合、更新はすべて失われます。
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

H5プロジェクトの実行方法 H5プロジェクトの実行方法 Apr 06, 2025 pm 12:21 PM

H5プロジェクトを実行するには、次の手順が必要です。Webサーバー、node.js、開発ツールなどの必要なツールのインストール。開発環境の構築、プロジェクトフォルダーの作成、プロジェクトの初期化、コードの書き込み。開発サーバーを起動し、コマンドラインを使用してコマンドを実行します。ブラウザでプロジェクトをプレビューし、開発サーバーURLを入力します。プロジェクトの公開、コードの最適化、プロジェクトの展開、Webサーバーの構成のセットアップ。

H5ページの生産とはどういう意味ですか? H5ページの生産とはどういう意味ですか? Apr 06, 2025 am 07:18 AM

H5ページの制作とは、HTML5、CSS3、JavaScriptなどのテクノロジーを使用したクロスプラットフォーム互換のWebページの作成を指します。そのコアは、ブラウザの解析コード、レンダリング構造、スタイル、インタラクティブ機能にあります。一般的なテクノロジーには、アニメーションエフェクト、レスポンシブデザイン、およびデータ相互作用が含まれます。エラーを回避するには、開発者をデバッグする必要があります。パフォーマンスの最適化とベストプラクティスには、画像形式の最適化、リクエスト削減、コード仕様などが含まれ、読み込み速度とコード品質を向上させます。

H5のクリックアイコンの作成方法 H5のクリックアイコンの作成方法 Apr 06, 2025 pm 12:15 PM

H5クリックアイコンを作成する手順には、次のものがあります。画像編集ソフトウェアで正方形のソース画像の準備が含まれます。 H5エディターにインタラクティブ性を追加し、クリックイベントを設定します。アイコン全体をカバーするホットスポットを作成します。ページにジャンプしたり、アニメーションのトリガーなど、クリックイベントのアクションを設定します。 HTML、CSS、およびJavaScriptファイルとしてH5ドキュメントをエクスポートします。エクスポートされたファイルをウェブサイトまたは他のプラットフォームに展開します。

H5プログラミング言語とは何ですか? H5プログラミング言語とは何ですか? Apr 03, 2025 am 12:16 AM

H5はスタンドアロンプ​​ログラミング言語ではなく、最新のWebアプリケーションを構築するためのHTML5、CSS3、およびJavaScriptのコレクションです。 1。HTML5は、Webページの構造とコンテンツを定義し、新しいタグとAPIを提供します。 2。CSS3はスタイルとレイアウトを制御し、アニメーションなどの新しい機能を紹介します。 3. JavaScriptは動的な相互作用を実装し、DOM操作と非同期要求を通じて機能を強化します。

H5ページの生産に適したアプリケーションシナリオ H5ページの生産に適したアプリケーションシナリオ Apr 05, 2025 pm 11:36 PM

H5(HTML5)は、マーケティングキャンペーンページ、製品ディスプレイページ、企業プロモーションマイクロウェブサイトなどの軽量アプリケーションに適しています。その利点は、クロスプラットフォームと豊富な対話性にありますが、その制限は複雑な相互作用とアニメーション、ローカルリソースアクセス、オフライン機能にあります。

H5でポップアップウィンドウの作り方 H5でポップアップウィンドウの作り方 Apr 06, 2025 pm 12:12 PM

H5ポップアップウィンドウの作成手順:1。トリガー方法(クリック、時間、終了、スクロール)を決定します。 2。設計コンテンツ(タイトル、テキスト、アクションボタン); 3。SETスタイル(サイズ、色、フォント、背景); 4.コードを実装する(HTML、CSS、JavaScript); 5。テストと展開。

H5ページの生産はフロントエンド開発ですか? H5ページの生産はフロントエンド開発ですか? Apr 05, 2025 pm 11:42 PM

はい、H5ページの生産は、HTML、CSS、JavaScriptなどのコアテクノロジーを含むフロントエンド開発のための重要な実装方法です。開発者は、< canvas>の使用など、これらのテクノロジーを巧みに組み合わせることにより、動的で強力なH5ページを構築します。グラフィックを描画するタグまたはJavaScriptを使用して相互作用の動作を制御します。

H5は何を参照していますか?コンテキストの探索 H5は何を参照していますか?コンテキストの探索 Apr 12, 2025 am 12:03 AM

H5ReferStoHtml5、apivotaltechnologyinwebdevelopment.1)html5introduceSnewelementsandapisforrich、dynamicwebapplications.2)Itupp ortsmultimediawithoutplugins、endancingurexperiencecrossdevices.3)semanticelementsimprovecontentstructurendseo.4)H5'srespo

See all articles