ホームページ >ウェブフロントエンド >jsチュートリアル >HTML5アプリケーションキャッシュを使用するときに回避する一般的な落とし穴
キーポイント
HTML5アプリケーションキャッシュ(AppCacheとも呼ばれます)は、最近Web開発者にとってホットトピックになりました。 AppCacheを使用すると、オフライン中にWebサイトの訪問者がWebサイトを閲覧できるようにします。ユーザーのコンピューターのキャッシュに、画像、スタイルシート、WebフォントなどのWebサイトの一部を保存することもできます。これにより、ウェブサイトの読み込みが速くなり、サーバー上の負荷が削減されます。
AppCacheを使用するには、拡張機能「AppCache」を使用してマニフェストファイルを作成できます。たとえば、manifest.appcacheです。このファイルでは、すべてのファイルをキャッシュにリストできます。サイトで有効にするには、以下に示すように、HTML要素のWebページにマニフェストファイルへの参照を含める必要があります。
<code class="language-html"></code>これは、サンプルマニフェストファイルです:
<code>CACHE MANIFEST # 2015-01-23 v0.1 /style.css /logo.gif /script.js NETWORK: * FALLBACK: /server/ /fallback.html</code>AppCacheの利点に加えて、ユーザーエクスペリエンスの破壊を防ぎ、アプリを破壊するために避けるべき一般的な落とし穴がいくつかあります。
マニフェストファイルにマニフェストファイルをリストしないでください
キャッシュページの資格のないリソースはロードされません
<code>CACHE MANIFEST # 2015-01-23 v0.1 manifest.appcache page2.css</code>これは、AppCacheを初めて使用する場合、非常に一般的な間違いです。これは、マニフェストファイルのネットワークフラグが機能する場所です。マニフェストファイルのネットワークセクションは、Webアプリケーションがオンラインにアクセスするために必要なリソースを指定します。
<code class="language-html"></code>
マニフェストファイルは、正しいメディアタイプのテキスト/キャッシュマニフェストの下で常に提供する必要があります。メディアタイプが設定されていない場合、AppCacheは機能しません。
生産サーバーの.htaccessファイルで常に構成する必要があります。これは、AppCacheを説明するほとんどのチュートリアルで言及されていますが、多くの開発者は、開発サーバーから生産サーバーにWebアプリケーションを移行すると、これを無視しています。
apacheの.htaccessファイルに以下を入力してください:
<code>CACHE MANIFEST # 2015-01-23 v0.1 /style.css /logo.gif /script.js NETWORK: * FALLBACK: /server/ /fallback.html</code>
アプリエンジンにアプリをアップロードすると、次のスニペットをapp.yamlファイルに追加することで同じタスクを実行できます。
ファイルが見つからないため、リスト全体を廃棄することは避けてください<code>CACHE MANIFEST # 2015-01-23 v0.1 manifest.appcache page2.css</code>
例:
logo.gifを削除すると、appcacheが削除された画像ファイルを見つけることができないため、マニフェストファイルには実行されません。
<code>NETWORK: /api</code>
データは、オンラインであってもappcacheからロードされます
マニフェストファイルが更新されるまでサーバー上の変更は発生しません
Webサイトを更新した後、常にマニフェストファイルを更新する必要があります。そうしないと、ユーザーは変更が表示されることはありません。以前にキャッシュされたデータのみが表示されます。マニフェストファイルのコメントのバージョン番号または日付を更新して、ユーザーのWebブラウザーにマニフェストファイルの新しいバージョンをダウンロードさせることができます。たとえば、ウェブサイトに変更を加える前にリストファイルを使用している場合:
ユーザーのブラウザがマニフェストファイルの新しいコピーをダウンロードできるように、次のコードブロックに似たものに変更できます。
<code>AddType text/cache-manifest .manifest</code>
#で始まる行は、実行されないコメント行であることに注意してください。
<code>- url: /public_html/(.*\.appcache) static_files: public_html/ mime_type: text/cache-manifest upload: public_html/(.*\.appcache)</code>
マニフェストファイルは、ホストと同じソースから提供する必要があります。
マニフェストファイルは、他のドメインからキャッシュされるリソースへの参照を保持できますが、ホストページと同じソースからWebブラウザに提供する必要があります。そうでない場合、マニフェストファイルはロードされません。たとえば、次のマニフェストファイルは正しいです:ここでは、ユーザーのブラウザキャッシュに保存するものを指定します。これは別のドメインから参照されています。これはまったく問題ありません。
リストurlに対する相対的なURLアプリケーション構造が次のようになった場合:
<code class="language-html"></code>その後、マニフェストファイルは次のようになります:
<code>CACHE MANIFEST # 2015-01-23 v0.1 /style.css /logo.gif /script.js NETWORK: * FALLBACK: /server/ /fallback.html</code>プログラム的にチェックリストのステータスを確認してください
Webサイトで上記のコードを実行すると、AppCacheリストの新しい更新がいつ利用可能かを知らせることができます。 Updatereadyは定義された状態であることに注意してください。 onupdateready()関数のswapcache()メソッドを使用して、古いマニフェストファイルを新しいマニフェストファイルに置き換えることもできます。
<code>CACHE MANIFEST # 2015-01-23 v0.1 manifest.appcache page2.css</code>
結論
<code>NETWORK: /api</code>AppCacheは有用な手法ですが、これまで見てきたように、プロジェクトに実装する際には注意してください。開発者は、マニフェストファイルに含まれるものを選択的に選択する必要があります。理想的には、マニフェストファイルには、スタイルシート、スクリプト、Webフォント、画像などの静的コンテンツを含める必要があります。ただし、あなたは常にマニフェストファイルに含まれているものの最高の裁判官です。 AppCacheは両刃の剣ですので、使用するときは注意してください!
アプリケーションキャッシュトラップでMDN
ジェイク・アーチボルドのアプリキャッシュはジャーク
HTML5アプリケーションキャッシングは、マニフェストファイルを使用して機能します。このファイルには、ブラウザがオフラインで使用するためにキャッシュするリソースがリストされています。ユーザーがWebページにアクセスすると、ブラウザはマニフェストファイルがそれに関連付けられているかどうかを確認します。その場合、ブラウザはリストされたリソースをダウンロードして保存します。次回ユーザーがWebページにアクセスしたとき、ブラウザはサーバーからダウンロードする代わりにキャッシュされたリソースをロードします。
HTML5アプリケーションのキャッシングを使用すると、マニフェストファイルを正しく更新せず、キャッシュマニフェストのフォールバックパーツを正しく処理しないようにしますデバイスストレージ。
HTML5アプリケーションキャッシングの将来は何ですか?
マニフェストファイルを作成する方法は?
Webページをマニフェストファイルに関連付ける方法は?
キャッシュを更新する方法は?
マニフェストファイルにリストされているリソースをダウンロードできない場合はどうなりますか?
すべてのリソースにHTML5アプリケーションキャッシュを使用できますか?
以上がHTML5アプリケーションキャッシュを使用するときに回避する一般的な落とし穴の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。