ページからタブを開くためのパーミッションをリクエストして、ユーザーにプロンプトを表示します。メッセージ、ニュース速報、メールなど、通知に関連するコンテンツ。リストの更新やカレンダーの予定変更など)。通常、通知をタップすると、その最終結果として関連ページが開いたりフォーカスされたりしますが、それが起こる前にキャッシュを更新しておくことが非常に重要です。メッセージを受信するときは当然オンラインですが、その通知を最終的に操作するときはオンラインであるとは限りません。そのため、このコンテンツをオフラインで利用できるようにすることが重要です。アプリは、その大部分がオフラインファーストの代表的な例ですが、そうとはいえない点もあります。メッセージに関連するコンテンツを提供できません。メッセージをタップすると通知が削除されるので、ユーザーが得られる情報はタップする前より減ってしまいます。そのような事態は避けてください。以下のコードは、キャッシュを更新してから通知を表示します。ベースに構築された別の機能です。回限り、または(非常にヒューリスティックな)間隔をおいてリクエストできます。ページからタブを開くためのパーミッションをリクエストして、ユーザーにプロンプトを表示します。メッセージが発生すると発生頻度があまりにも高くなってしまいます)。}});キャッシュの永続性オリジンには、処理を実行するための一定の空き領域が与えられます。ストレージ間で共有されます。LocalStorage、IndexedDB、ファイルシステム、(当然ながら)キャッシュなどです。与えられる領域は決まっておらず、端末やストレージの状況によって異なります。与えられている領域を確認するには、次のコードを使用します。ストレージと同様に、端末のストレージが残り少なくなると、ブラウザはこの領域を自由に放棄することができます。残念ながら、これらの映画は残したい、このゲームは削除されてもかまわないといった違いをブラウザは判断できません。}});もちろん、ユーザーはパーミッションを付与する必要があります。重要なのは、ユーザーをこのフローに組み込むことです。それにより、削除の可否の判断をユーザーに委ねることができます。端末の容量が残り少なくなったとき、不要なデータを削除しても容量不足が解決しない場合は、どのアイテムを残すかまたは削除するかをユーザーが決定します。アプリと同等に扱うことです。指示しないと、キャッシュは使用されません。ここでは、リクエスト処理に関するパターンをいくつか示します。サイトの特定の「バージョン」に対して静的と見なしうるすべてのもの。イベントでキャッシュされているはずなので、既にあるものとして当てにできます。event.respondWith(caches.match(event.request));});このケースの処理が特に必要になることはほとんどありませんが、キャッシュになければネットワークから取得で説明しています。以外のリクエストなど、オフラインに相当するものがないもの。behaviour});このケースの処理が特に必要になることはほとんどありませんが、キャッシュになければネットワークから取得で説明しています。ファーストのアプリを作成する場合、ほとんどのリクエストの処理にこのパターンが適用されます。受信リクエストによっては、例外的に他のパターンが適用されます。以外のすべてのリクエストはキャッシュできないため、後者が適用されます)。アクセスが低速な端末でパフォーマンスを追及する場合の小さなアセット。スキャンソフト、高速インターネット接続を一緒に使用している場合、ネットワークからリソースを取得する方がディスクから取得するより速い場合があります。端末にコンテンツが存在するのにネットワークから取得すると、データの浪費につながるので注意してください。サイトの「バージョン」外で頻繁に更新されるリソースが取得できなかった場合の応急策。メディアのタイムライン、ゲームの得点ランキングなどです。このパターンでは、オンラインのユーザーには最新のコンテンツを提供し、オフラインのユーザーにはキャッシュされた古いバージョンを提供することになります。エントリを更新します。この方法には短所があります。ユーザーのネットワーク接続が途切れがちだったり低速だったりする場合、ユーザーは、既に端末に存在する完全に利用可能なコンテンツを取得できるにもかかわらず、ネットワークからの取得が失敗するのを待たねばなりません。そのため、コンテンツの取得に非常に時間がかかり、ユーザーをイライラさせるおそれがあります。よい解決策として、次に紹介する先にキャッシュ、次にネットワークをご覧ください。頻繁に更新されるコンテンツ。メディアのタイムライン、ゲームの得点ランキングなどです。)を生成する必要があります。キャッシュされたデータを表示し、その後ネットワークから取得できたらページを更新します。ゲームの得点ランキング)、コンテンツの大部分を置き換えると混乱を招くことがあります。基本的に、ユーザーが視聴中または操作中のデータが「消失」してしまわないようにしてください。は古いコンテンツの上に新しいコンテンツを追加してスクロール位置を調整するので、ユーザーの邪魔をすることがありません。コンテンツでは、ほぼリニアな順序が維持されているためです。このパターンをコピーして、コンテンツが画面に表示されるまでの時間をできる限り短縮する一方で、最新のコンテンツを取得できたらすぐに表示するようにしています。コード:常にネットワークにアクセスし、そのたびにキャッシュを更新します。汎用的なフォールバックキャッシュやネットワークからリソースを提供できない場合、通常は汎用的なフォールバックを提供します。リクエスト、「このページはオフラインでは利用できません」というページ。);});フォールバックに使用するアイテムは、通常は依存関係としてインストールされます。送信トレイにメールを保存し、ページに応答して送信は失敗したがデータの保存には成功したことを知らせます。レスポンスをキャッシュできなかったページ。「...としてログイン」)。データとテンプレートをリクエストしてレンダリングすることができます。つを選択しなければならないということはありません。応じて複数の方法を使用することになります。以下を使用しています。次のコードは、リクエストを確認して処理方法を決定します。);});以上で、処理パターンの全容をおわかりいただけたと思います。素敵なアイコンをありがとうございました。