Guides pratiques

Préparer un site aux connexions lentes et aux interruptions

Une connexion interrompue ne doit pas transformer une demande incertaine en réussite annoncée. Commencez par décider ce qui reste lisible, ce qui peut être préparé et ce qui exige une confirmation du serveur.

Voir la méthode

Une interruption compréhensible

Définir un périmètre utile

Classez les tâches : lire une information stable, préparer un brouillon, consulter une disponibilité ou payer. Les deux dernières dépendent de données et confirmations que l’on ne peut pas supposer actuelles sans réseau. Prévoyez une explication utile lorsque l’action reste indisponible.

Un site simple peut rester utile avec des pages légères et des liens fiables sans ajouter une application hors ligne. Évaluez d’abord les interruptions réellement rencontrées et les contenus indispensables. Un mécanisme supplémentaire doit avoir un responsable et des tests, pas seulement un nom technique.

Décrire les états sans ambiguïté

Séparez brouillon local, attente d’envoi, réception serveur et traitement terminé. Écrivez le message affiché dans chaque état et le moyen de reprendre. Une icône de réseau ou un bouton désactivé ne suffit pas à expliquer ce qui est arrivé à la demande.

La documentation MDN décrit les service workers et les mécanismes d’opération hors ligne ou en arrière-plan. Leur disponibilité et leur cycle de vie doivent être évalués sur les navigateurs du projet. Un navigateur peut interrompre certains travaux ; le parcours doit rester compréhensible sans dépendre d’une exécution permanente.

Tester une interruption au moment défavorable

Sur un environnement d’essai, coupez le réseau avant l’envoi, pendant le transfert et après la réception serveur. Rétablissez-le puis relancez la page. Contrôlez ce qui est conservé, perdu, répété ou présenté comme terminé. Le cas difficile est souvent l’incertitude sur une demande déjà reçue.

Rejouez avec une nouvelle session et un autre appareil si le service promet une continuité entre appareils. Faites tester les messages par une personne qui ne connaît pas l’architecture. Elle doit comprendre si une action reste à faire et comment éviter une deuxième commande.

Vérifier fraîcheur et confidentialité

Pour une donnée conservée, indiquez la date et l’usage possible. Une ancienne disponibilité peut aider à se repérer sans autoriser une réservation. Définissez quelles données restent sur l’appareil après déconnexion et qui examine les risques liés à un appareil partagé.

Après une nouvelle version, vérifiez le remplacement des ressources et la compatibilité des données locales. Gardez une manière de récupérer un brouillon autorisé ou de rétablir un fonctionnement simple. Le livrable doit inclure les états, tests d’interruption, règles de conservation et limites du mode dégradé.

Documentation primaire : MDN — Offline and background operation.

Matrice de recette à adapter au projet

Ces contrôles proposés utilisent des cas fictifs. Décidez du comportement attendu avec l’équipe, notez le résultat et attribuez les écarts non résolus avant publication.

Cas de test, résultats attendus et preuves utiles
CasRésultat attenduPreuve à conserver
Première visite sans réseauUn état compréhensible paraît même si aucune version n’a été conservée.Écran obtenu dans un navigateur sans données antérieures.
Page déjà visitée hors ligneLe visiteur comprend la date et les limites du contenu conservé.Version affichée et indications de fraîcheur.
Formulaire interrompuUn brouillon n’est pas présenté comme une demande reçue.Texte affiché, stockage local et absence de réception serveur.
Ancienne session après nouvelle versionLes données et ressources restent compatibles ou une reprise claire est proposée.Versions du cache et de l’interface dans la même session.

Questions fréquentes

Hors ligne signifie-t-il qu’une commande est acceptée ?

Non. Un brouillon ou une demande en attente doit être distingué d’une confirmation du serveur. Affichez l’état réel et un moyen de reprise qui évite les opérations répétées.

Tous les sites ont-ils besoin d’un service worker ?

Non. Commencez par les usages, le poids des pages et les interruptions constatées. Un mode hors ligne spécifique se justifie lorsqu’il apporte un parcours utile que l’équipe peut maintenir et tester.