プログレッシブ ウェブアプリのオフライン サポートの検出機能を改善

Penny McLachlan 氏
Penny McLachlan 氏

プログレッシブ ウェブアプリ(PWA)は、モバイル デバイスやデスクトップ デバイス向けのウェブ テクノロジーを使用して、インストール可能な最新のアプリケーションを作成するためのパターンです。

偶発的に PWA ではなく、最新のウェブ エクスペリエンスを構築するための基準の 1 つは、デバイスがオフラインの場合でもアプリが動作し続ける必要があることです。つまり、ユーザーがデバイスでネットワークにアクセスできなくなった場合、Chrome Dino の画面は表示されません。

PWA のすべての基準は、ウェブ ブラウジング時に、アプリと競合し合う高品質なエクスペリエンスを提供することを目標としています。Chrome は、PWA のインストール機能を有効にする前に、PWA の条件に対するチェックを行います。

Chrome からデバイスにインストールできるのは、オフライン モードのサポートなど、プログレッシブ ウェブアプリのインストール可能性に関する主要な基準をすべて満たすアプリのみです。

以前のオフライン検出ロジック

オフライン サポートの検証は、ここ数年、PWA のインストール基準の一部として含まれてきました。最近まで、Chrome には Service Worker を介してリクエストをシミュレートする機能がないため、オフラインでの正しい動作を完全にチェックすることはできませんでした。

Service Worker の図

つまり、Chrome には、オフライン チェック中に fetch イベント ハンドラが HTTP 200 で有効なリソースを返したかどうかを検証できませんでした。Chrome は、Service Worker に実際に fetch ハンドラが存在するかどうかのみをチェックしました。

オフライン検出ロジックの更新

Chrome 89 では、Service Worker を介してシミュレートされたオフライン リクエストを実行する機能が追加され、オフライン検出ロジックが改善され、アプリケーションの実際のオフライン サポートをより適切に反映できるようになりました。

この新しい機能を使用して、PWA がオフライン時に有効なページを提供できるようにすることを計画していましたが、その計画は変わりません。fetch イベント ハンドラを含む Service Worker がページにある場合、インストール可否チェックは引き続き合格します。

デベロッパーへの影響

今のところ、変更の必要はありませんが、今後いずれかの時点で更新されたロジックを使用して、有効なページがあるかどうかがチェックされるため、オフラインで使用することを強くおすすめします。

どのようなオフライン エクスペリエンスを提供するかは、デベロッパーが決定します。その一つは、完全に機能するオフライン エクスペリエンスです。つまり、必要なすべてのリソースとデータを事前にキャッシュに保存し、ユーザーが再びオンラインになったときにデータをサーバーと同期します。また、リソースをキャッシュに保存することで、毎回ネットワークからリソースをダウンロードする必要がないため、ウェブに関する主な指標の改善にも役立ちます。もう一方の端はカスタムのオフライン フォールバック ページです。

デベロッパー ツールの [問題] タブに表示される警告は、Chrome 90 頃から削除されます。