ホームページ > ウェブフロントエンド > htmlチュートリアル > HTML5アプリケーションキャッシュAPIを使用するにはどうすればよいですか(代わりにサービスワーカーを使用します)?

HTML5アプリケーションキャッシュAPIを使用するにはどうすればよいですか(代わりにサービスワーカーを使用します)?

James Robert Taylor
リリース: 2025-03-17 12:11:35
オリジナル
883 人が閲覧しました

HTML5アプリケーションキャッシュAPIを使用するにはどうすればよいですか(代わりにサービスワーカーを使用します)?

HTML5アプリケーションキャッシュAPIは、廃止されましたが、Webアプリケーションがキャッシュリソースによってオフラインで動作できるようにするために使用されました。これがあなたがそれを使用した方法です:

  1. マニフェストファイル.appcache拡張機能を備えたマニフェストファイルを作成します。このファイルには、ブラウザがキャッシュする必要があるリソースがリストされています。マニフェストファイルの形式は次のとおりです。

     <code>CACHE MANIFEST # v1 CACHE: /index.html /styles.css /script.js NETWORK: * FALLBACK: / /offline.html</code>
    ログイン後にコピー
  2. HTMLリファレンスタグにmanifest属性を含めることにより、HTMLファイルのマニフェストファイルを参照してください。

     <code class="html"></code>
    ログイン後にコピー
  3. ブラウザキャッシュ:ページが読み込まれると、ブラウザはマニフェストファイルをチェックし、 CACHEセクションにリストされているリソースのキャッシュを開始します。
  4. 更新と更新:ブラウザは定期的にマニフェストファイルの更新をチェックします。変更が検出された場合(たとえば、コメントバージョンを更新することにより)、リソースを再ダウンロードしてキャッシュを更新します。
  5. オフラインフォールバックNETWORKセクションにリストされているリソースは、キャッシュされることはありません。つまり、常にネットワークからフェッチされます。 FALLBACKセクションでは、ユーザーがオフラインになったときに提供するフォールバックページを指定します。

重要な注意:これらの手順は、アプリケーションキャッシュAPIの仕組みを詳述していますが、新しいプロジェクトに使用されるべきではありません。代わりに、開発者はオフライン機能を管理するためにサービスワーカーに移行する必要があります。

アプリケーションキャッシュAPIからオフライン機能のサービスワーカーに移行する手順は何ですか?

アプリケーションキャッシュAPIからサービスワーカーへの移行には、スムーズな移行を確保するためのいくつかのステップが含まれます。

  1. サービスワーカーを理解する:Webページとは別のバックグラウンドで実行され、ネットワークリクエストを傍受して処理できるサービスワーカーに慣れてください。オフライン機能とキャッシュを管理するためのより強力な方法を提供します。
  2. アプリケーションキャッシュの削除参照:HTMLファイルからmanifest属性を削除し、 .appcacheマニフェストファイルを削除します。
  3. サービスワーカーの実装:メインのJavaScriptファイルにサービスワーカーを登録してください:

     <code class="javascript">if ('serviceWorker' in navigator) { window.addEventListener('load', function() { navigator.serviceWorker.register('/service-worker.js').then(function(registration) { console.log('ServiceWorker registration successful with scope: ', registration.scope); }, function(err) { console.log('ServiceWorker registration failed: ', err); }); }); }</code>
    ログイン後にコピー
  4. サービスワーカーを書き込むservice-worker.jsファイルを作成して、キャッシュロジックを処理します。リソースを保存するためにCache APIを使用してください。

     <code class="javascript">self.addEventListener('install', function(event) { event.waitUntil( caches.open('my-cache').then(function(cache) { return cache.addAll([ '/', '/index.html', '/styles.css', '/script.js' ]); }) ); }); self.addEventListener('fetch', function(event) { event.respondWith( caches.match(event.request).then(function(response) { return response || fetch(event.request); }) ); });</code>
    ログイン後にコピー
  5. テストとデバッグ:サービスワーカーがリソースを正しくキャッシュし、オフラインで提供していることを確認してください。ブラウザ開発者ツールを使用して、サービスワーカーを検査およびデバッグします。
  6. コンテンツの更新:サービスワーカーを定期的に更新して、キャッシュの更新を管理します。バージョン化またはその他の戦略を使用して、キャッシュされたコンテンツを更新します。

アプリケーションキャッシュAPIから移行した後、Webアプリケーションがオフライン対応のままであることを確認するにはどうすればよいですか?

アプリケーションキャッシュAPIからサービスワーカーに移行した後、Webアプリケーションがオフライン対応のままであることを確認するには、以下を検討してください。

  1. 包括的なキャッシング:アプリケーションがオフラインで機能するために必要なすべての重要なリソースがキャッシュされていることを確認してください。これには、HTML、CSS、JavaScript、画像、およびその他の資産が含まれます。サービスワーカー内のCache APIを使用して、これを処理します。

     <code class="javascript">self.addEventListener('install', function(event) { event.waitUntil( caches.open('my-cache').then(function(cache) { return cache.addAll([ '/', '/index.html', '/styles.css', '/script.js', '/offline.html' ]); }) ); });</code>
    ログイン後にコピー
  2. ネットワークリクエストの処理fetchイベントを使用して、すべてのネットワークリクエストをインターセプトして処理します。キャッシュにリソースが見つからない場合は、ネットワークからフェッチしてから応答をキャッシュしようとします。

     <code class="javascript">self.addEventListener('fetch', function(event) { event.respondWith( caches.match(event.request).then(function(response) { return response || fetch(event.request).then(function(response) { return caches.open('my-cache').then(function(cache) { cache.put(event.request, response.clone()); return response; }); }); }) ); });</code>
    ログイン後にコピー
  3. オフラインフォールバック:オフラインフォールバック戦略を実装します。リクエストが失敗した場合、キャッシュからフォールバックページを提供できます。

     <code class="javascript">self.addEventListener('fetch', function(event) { event.respondWith( fetch(event.request).catch(function() { return caches.match('/offline.html'); }) ); });</code>
    ログイン後にコピー
  4. 戦略の更新:サービスワーカーがそれ自体とキャッシュを更新できるようにします。バージョン化とactivateイベントを使用して、更新を管理します。

     <code class="javascript">self.addEventListener('activate', function(event) { var cacheWhitelist = ['my-cache-v2']; event.waitUntil( caches.keys().then(function(cacheNames) { return Promise.all( cacheNames.map(function(cacheName) { if (cacheWhitelist.indexOf(cacheName) === -1) { return caches.delete(cacheName); } }) ); }) ); });</code>
    ログイン後にコピー
  5. テスト:ブラウザ開発者ツールを使用して、オフライン機能を定期的にテストします。オフラインモードをシミュレートし、必要なすべてのリソースがキャッシュから提供されていることを確認します。

アプリケーションキャッシュAPIと、移行プロセス中に私が知っておくべきサービスワーカーの主な違いは何ですか?

アプリケーションキャッシュAPIからサービスワーカーに移行する場合、次の重要な違いを理解することが重要です。

  1. 柔軟性と制御

    • アプリケーションキャッシュAPI :マニフェストファイルを使用してキャッシュするための剛性のある宣言的なアプローチがあります。マニフェストでリソースが指定されると、それらはキャッシュされ、自動的に提供されます。
    • サービスワーカー:キャッシュとネットワークのリクエストをプログラム的な制御を提供します。キャッシュ、更新、およびサービスのカスタムロジックを定義して、より複雑で動的な動作を可能にします。
  2. 範囲と機能

    • アプリケーションキャッシュAPI :マニフェストファイルで指定されたキャッシュリソースに限定され、オフラインで提供されます。マニフェストで指定されているものを超えて、ネットワークリクエストを制御できません。
    • サービスワーカー:すべてのネットワーク要求を傍受して処理し、プッシュ通知を管理し、バックグラウンド同期を管理し、定期的な更新を提供することさえできます。オフラインのキャッシュを超えて、より広い範囲と機能があります。
  3. 更新メカニズム

    • アプリケーションキャッシュAPI :更新は、マニフェストファイルの変更に基づいています。これは、更新が適切に適用されない予期しない動作や人種条件につながる場合があります。
    • サービスワーカー:更新は、バージョンコントロールとactivateイベントを通じて管理されます。キャッシュがいつ、どのように更新されるかを明示的に定義し、より予測可能で制御された更新を提供することができます。
  4. パフォーマンスと効率

    • Application Cache API :わずかな変更にもキャッシュの更新が必要な、すべてまたは無効なキャッシュアプ​​ローチにより、パフォーマンスの問題に苦しむ可能性があります。
    • サービスワーカー:彼らはきめの細かいキャッシュを可能にし、より効率的なリソース管理を可能にします。キャッシュ全体に影響を与えることなく、個々のリソースを更新できます。
  5. ブラウザのサポートと非難

    • Application Cache API :最新のブラウザでは非推奨でサポートされていないため、新しいプロジェクトや長期使用には適していません。
    • サービスワーカー:オフライン機能に推奨される最新の標準であり、現在のブラウザで広くサポートされています。

これらの違いを理解することで、アプリケーションをサービスワーカーに効果的に移行し、スムーズな移行とオフラインの機能が強化されます。

以上がHTML5アプリケーションキャッシュAPIを使用するにはどうすればよいですか(代わりにサービスワーカーを使用します)?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート