Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more

Un service worker peut faire qu’une ancienne version continue d’être utilisée après un déploiement, mais les éléments disponibles ne démontrent pas qu’il soit responsable de cet incident — ni que published: false ait bloqué la mise à jour. Pour le savoir, il faut distinguer un worker qui n’a jamais été mis à jour, un nouveau worker en attente, des fichiers périmés dans Cache Storage et un problème de build ou de livraison.

Ce que l’on peut — et ne peut pas — conclure

Le scénario est plausible : le cycle de vie des service workers permet à une version précédente de continuer à contrôler des pages, et le Cache API peut conserver des ressources anciennes si le code ne les remplace pas ou ne les supprime pas. Mais ces mécanismes généraux ne prouvent pas ce qui s’est passé dans l’application évoquée ici. La durée de trois semaines fait partie du titre; elle n’est pas établie par une mesure indépendante.

Il faut aussi traiter published: false comme une piste à vérifier, pas comme la cause. Un billet de l’Afrotomation Blog publié le 1 août 2026 décrit cette valeur dans le front matter d’articles importés : elle prévalait sur le champ de publication de l’API jusqu’à ce que l’auteur réécrive le front matter du corps. Ce cas concerne la publication de contenu. Il ne montre pas que ce champ contrôle le build d’une application, son manifeste de précache ou son service worker.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Pourquoi une ancienne version peut rester visible après un déploiement

Le nouveau worker attend encore

Un navigateur ne remplace généralement pas d’un coup un worker qui contrôle déjà des pages. Le nouveau worker s’installe à côté de l’ancien, puis attend normalement que les clients contrôlés par l’ancien soient fermés avant de s’activer. Un onglet laissé ouvert longtemps peut donc rester associé à l’ancien document. L’activation d’un worker plus récent ne réécrit pas rétroactivement les pages déjà ouvertes.

Le worker actif sert encore des ressources mises en cache

Cache Storage, que les service workers utilisent avec le Cache API, est distinct du cache HTTP du navigateur. Si le gestionnaire fetch privilégie le cache, par exemple avec une stratégie Cache First, il peut continuer à renvoyer un ancien fichier. Les entrées de Cache Storage ne disparaissent pas automatiquement : le code doit remplacer les réponses ou supprimer explicitement les caches obsolètes.

Le script du worker n’a pas reçu ou adopté la mise à jour attendue

Les navigateurs vérifient le script du worker lors d’une navigation dans son scope et comparent son contenu. Une application monopage, où les navigations sont rares, peut avoir intérêt à déclencher une vérification avec ServiceWorkerRegistration.update(). La façon dont le cache HTTP intervient dépend aussi de updateViaCache. MDN distingue les valeurs imports, all et none. Chrome indique que, depuis Chrome 68, le cache HTTP est contourné par défaut pour le script principal du worker; cela ne suffit pas à décrire tous les navigateurs, les scripts importés ou la configuration de cette application.

Rank #2
Sale
HTML and CSS: Design and Build Websites
  • HTML CSS Design and Build Web Sites
  • Comes with secure packaging
  • It can be a gift option

Le déploiement ou le build a publié les mauvais fichiers

Un worker peut fonctionner conformément à son code et pourtant servir une version inattendue si l’artefact, le manifeste de précache ou les fichiers effectivement publiés ne correspondent pas à ceux attendus. Il faut comparer ce qui a été construit avec ce qui a réellement été livré, plutôt que d’attribuer automatiquement le problème au cache du navigateur.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Comment distinguer les pistes

Hypothèse Indice à examiner Ce que l’indice aiderait à établir
Le worker n’a pas été mis à jour Octets ou empreinte du script servi, requête de vérification, URL et scope de l’enregistrement, configuration updateViaCache. Si le navigateur a vérifié le script attendu et reçu son contenu actuel.
Le nouveau worker est en attente registration.waiting, clients encore contrôlés par l’ancien worker, onglets restés ouverts. Si l’installation a abouti mais que l’activation attend la fermeture des clients.
Un ancien fichier sort de Cache Storage Réponse du gestionnaire fetch, URL du fichier, noms/version des caches et logique de nettoyage à l’activation. Si le worker actif choisit toujours une ressource mise en cache.
Le build ou la livraison est incorrect Artefact attendu, manifeste, script du worker et contenu réellement publié. Si la version périmée a été produite ou déployée avant même d’atteindre le navigateur.

Enquête pratique, dans cet ordre

  1. Comparer le script servi à l’artefact attendu. Récupérez le script du worker depuis l’environnement de production et comparez ses octets ou son empreinte à ceux de l’artefact prévu. Vérifiez aussi ses imports et les en-têtes HTTP Cache-Control. La comparaison doit porter sur le script réellement livré, pas seulement sur le fichier local.
  2. Relever l’état de l’enregistrement dans les navigateurs concernés. Dans les outils de développement, inspectez l’enregistrement du service worker et consignez registration.active, registration.waiting et registration.installing, ainsi que l’URL et le scope. Observez si updatefound survient. Un appel contrôlé à registration.update() peut aider à distinguer une vérification absente d’une installation qui échoue.
  3. Vérifier si l’installation rejette. Cherchez les erreurs de console et les rejets dans le code d’installation. Par exemple, si une opération comme cache.addAll() ne peut pas obtenir un fichier attendu, l’installation peut échouer et le nouveau worker ne devient pas actif.
  4. Tracer la réponse de chaque ressource concernée. Examinez le gestionnaire fetch et déterminez s’il utilise Cache First, Network First ou Stale While Revalidate. Pour le shell applicatif et les fichiers anciens, relevez l’URL demandée, la réponse choisie, le nom et la version du cache, puis la logique de suppression dans le gestionnaire activate.
  5. Comparer les onglets anciens et les visites fraîches. Séparez les utilisateurs qui ont gardé un document ouvert de ceux qui ont fermé puis rouvert l’application. Une différence entre ces groupes peut aider à distinguer un ancien document encore contrôlé d’un fichier périmé toujours sélectionné depuis Cache Storage.
  6. Suivre published: false à travers le pipeline, si cette piste correspond au projet. Vérifiez sa provenance, la conversion du front matter, le filtrage des pages, la génération du manifeste de précache et la publication de l’artefact. Il faut trouver une liaison effective avec ces étapes pour conclure que ce champ a modifié la livraison de l’application.

Pourquoi « vider le cache » ne suffit pas toujours

Cette expression peut désigner plusieurs opérations différentes. Effacer le cache HTTP ne revient pas nécessairement à effacer Cache Storage, et aucun des deux gestes ne ferme les onglets déjà ouverts. Si un worker actif continue d’appliquer une stratégie Cache First, si un nouveau worker attend ou si le déploiement sert toujours l’ancien artefact, un simple nettoyage du cache HTTP ne règle pas la cause. Le diagnostic doit identifier la couche qui renvoie l’ancienne version avant de choisir une action.

Faut-il utiliser skipWaiting() pour accélérer la mise à jour ?

skipWaiting() peut accélérer l’activation d’un worker en attente, mais forcer le remplacement pendant qu’une page vit encore peut rendre incompatibles le worker qui traite ses requêtes et les ressources auxquelles cette page s’attend. Avant de l’adopter, il faut définir comment l’application gère ce changement : par exemple, comment elle avertit les utilisateurs et quand elle leur demande de recharger. Le faire uniquement pour faire disparaître une ancienne version peut transformer un retard de mise à jour en défaut fonctionnel.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Ce que révèle vraiment published: false

La source disponible établit un problème de publication d’articles importés : dans le cas rapporté par l’Afrotomation Blog le 1 août 2026, le front matter présent dans le corps prévalait sur le champ published de l’API. Elle n’établit aucun lien avec un service worker ni avec l’incident d’une application web servie en ancienne version. Pour soutenir cette explication, il faudrait montrer dans le code ou les artefacts que la valeur filtre effectivement les pages, les assets, le manifeste ou le script du worker.

Rank #4
Sale
Web Design with HTML, CSS, JavaScript and jQuery Set
  • Brand: Wiley
  • Set of 2 Volumes
  • A handy two-book set that uniquely combines related technologies Highly visual format and accessible language makes these books highly effective learning tools Perfect for beginning web designers and front-end developers

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.