Amélioration de la détection du fonctionnement hors connexion des progressive web apps

Penny McLachlan
Penny McLachlan

Les progressive web apps (PWA) sont un modèle permettant de créer des applications modernes et installables à l'aide de la technologie Web pour les appareils mobiles et les ordinateurs.

L'un des critères pour créer une expérience Web moderne, et par conséquent des PWA, est que l'application doit continuer à fonctionner même si l'appareil est hors connexion. Cela signifie qu'aucun écran de jeu du dinosaure Chrome ne s'affiche si l'utilisateur perd l'accès au réseau sur son appareil.

L'objectif de tous les critères PWA est de garantir aux utilisateurs une expérience de haute qualité, comparable à celle d'une application, lorsqu'ils naviguent sur le Web. Chrome effectue des vérifications par rapport aux critères des PWA avant d'activer la fonctionnalité d'installation pour une PWA.

Seules les applications qui répondent à tous les critères d'installabilité des applications Web progressives de base, y compris la prise en charge d'un mode hors connexion, peuvent être installées sur l'appareil à partir de Chrome.

Ancienne logique de détection hors connexion

La vérification de la compatibilité hors connexion fait partie des critères d'installabilité des PWA depuis plusieurs années. Jusqu'à récemment, Chrome n'était pas en mesure de simuler des requêtes via le service worker. Il n'était donc pas possible de vérifier complètement le bon comportement hors connexion.

Schéma du service worker

Cela signifiait que Chrome n'était pas en mesure de valider si le gestionnaire d'événements fetch renvoyait une ressource valide avec HTTP 200 lors de la vérification hors connexion. Chrome vérifiait uniquement si le service worker disposait d'un gestionnaire fetch.

Mise à jour de la logique de détection hors connexion

Chrome 89 a ajouté la possibilité d'exécuter des requêtes hors connexion simulées via le service worker, ce qui permet d'améliorer la logique de détection hors connexion pour mieux refléter la prise en charge hors connexion réelle de l'application.

Nous avions prévu d'utiliser cette nouvelle fonctionnalité pour nous assurer que les PWA fournissaient une page valide lorsqu'elles étaient hors connexion, mais nous avons mis ces plans en suspens. La vérification de l'installabilité continuera d'être réussie si la page comporte un service worker qui inclut un gestionnaire d'événements fetch.

Qu'est-ce que cela signifie pour les développeurs ?

Bien qu'aucune modification ne soit requise pour le moment, nous vous recommandons vivement de proposer une expérience hors connexion, car nous prévoyons d'utiliser la logique mise à jour pour vérifier la validité d'une page à l'avenir.

C'est à vous de décider quel type d'expérience hors connexion vous souhaitez proposer. À l'une des extrémités du spectre se trouve une expérience hors connexion entièrement fonctionnelle. Cela signifie pré-mettre en cache toutes les ressources et données nécessaires, et synchroniser les données avec votre serveur lorsque l'utilisateur est à nouveau en ligne. La mise en cache des ressources permet également d'améliorer les métriques Core Web Vitals, car elle élimine la nécessité de télécharger les ressources à partir du réseau à chaque fois. À l'autre extrémité du spectre se trouve une page de secours hors connexion personnalisée.

L'avertissement affiché sous l'onglet Problèmes des outils pour les développeurs sera supprimé aux alentours de Chrome 90.