Retour à la leçonMission
Mission : réparer un cache réseau qui plante
Corriger un Service Worker qui lève une erreur sur le corps déjà consommé, et fiabiliser la mise à jour du cache entre deux versions.
Contexte
Le fetch handler d'un Service Worker contient ce code de stratégie network-first :
js
function networkFirst(requete) {
return fetch(requete).then((reponse) => {
caches.open("app-shell-v4").then((cache) => cache.put(requete, reponse));
return reponse;
});
}En production, certaines requêtes API échouent avec une erreur liée au corps de la réponse déjà lu, et après le déploiement de "app-shell-v4" (remplaçant "app-shell-v3"), certains utilisateurs voient l'ancienne interface pendant plusieurs jours malgré un self.skipWaiting() déjà présent dans install.