Clustraly
Command Menu, prévisualisation & PWA

Restez debout hors ligne : le service worker offline (cache-first / network-first)

Service worker offline (cache-first / network-first) une fonctionnalité du module Command Menu, prévisualisation & PWA de Clustraly. Le service worker offline de Clustraly met en cache vos actifs et pages publiques pour les servir même sans réseau, sans jamais toucher l'admin.

Clustraly enregistre un service worker sur vos layouts admin et public. Il sert vos actifs en cache-first, vos pages publiques en network-first, et laisse toujours passer en direct l'admin, l'API et les flux temps réel.

Consultable hors connexion

Vos visiteurs gardent la page, même quand le réseau lâche

Une coupure réseau ne vide plus l'écran. Le service worker rejoue les actifs déjà connus et sert une page de repli lisible quand une navigation échoue.

Aucune installation manuelle : le cache offline PWA s'enregistre sur vos layouts admin et public dès le chargement de la page.

  • Actifs statiques servis depuis le cache, sans aller-retour réseau
  • Repli sur offline.html ou une page inline quand la navigation échoue
  • Enregistré sur les layouts admin et public
Deux stratégies, une par usage

Cache-first pour vos actifs, network-first pour vos pages

Chaque requête suit la bonne route. Vos fichiers sous /assets/, votre manifest et votre favicon partent en cache-first pour un rendu immédiat ; vos navigations HTML publiques passent en network-first pour rester fraîches.

Quand le réseau manque sur une page publique, le service worker bascule sur le cache, puis sur la page hors ligne : un repli en cascade, jamais un écran vide.

  • Cache-first : actifs /assets/, manifest et favicon
  • Network-first : navigations HTML publiques, toujours à jour
  • Repli en cascade réseau → cache → page hors ligne
Garde-fous intégrés

L'admin, l'API et le temps réel restent toujours en direct

Rien de sensible ni de dynamique ne finit en cache. Le service worker ne met jamais en cache ni ne sert l'admin, /api/ ou les flux SSE : ils sont toujours servis en direct.

Il contourne aussi les requêtes non-GET, cross-origin et range, pour ne toucher que ce qui peut réellement être mis en cache sans risque.

  • Jamais de cache pour l'admin, /api/ ou les flux SSE
  • Requêtes non-GET, cross-origin et range contournées
  • Le contenu privé et temps réel reste toujours frais
Cache maîtrisé

Un changement de version purge l'ancien cache d'un coup

Vous ne restez jamais collé sur une vieille version. À l'activation, le service worker purge les caches obsolètes selon CACHE_VERSION et prend la main immédiatement.

Avec skipWaiting et clients.claim, la nouvelle version s'applique sans attendre une fermeture d'onglet : vos visiteurs voient la bonne version, tout de suite.

  • Purge des anciens caches pilotée par CACHE_VERSION
  • Activation immédiate via skipWaiting + clients.claim
  • Pas de contenu périmé figé côté visiteur
Installé partout, sans réglage

Fonctionne à la racine comme dans un sous-répertoire

Peu importe où vit votre site. Le service worker dérive son base path de son propre emplacement : il tourne aussi bien à / qu'à /blog/.

Il s'enregistre sur les deux layouts, admin et public, et échoue en silence si le navigateur ne le supporte pas sans jamais casser la page.

  • Base path déduit de l'emplacement du worker
  • Compatible racine (/) ou sous-répertoire (/blog/)
  • Enregistré sur les layouts admin et public
Pourquoi ça compte

Un cache qui protège l'expérience sans jamais exposer l'admin

Le service worker travaille en arrière-plan : il sert vos actifs en cache-first, garde vos pages publiques à jour en network-first, et laisse strictement de côté l'admin, l'API et les flux temps réel. Vous gardez la maîtrise, il gère la résilience.

FAQ

Questions fréquentes

Le service worker peut-il servir une version périmée de mes pages ?
Non pour vos pages publiques : elles passent en network-first, donc la version réseau prime tant qu'elle répond, et le cache ne sert que de repli. À chaque montée de CACHE_VERSION, les anciens caches sont purgés dès l'activation.
Mes pages d'administration sont-elles mises en cache ?
Non. L'admin, /api/ et les flux SSE ne sont jamais mis en cache ni servis depuis le cache : ils restent toujours servis en direct. Les requêtes non-GET, cross-origin et range sont également contournées.
Que voient mes visiteurs sans connexion ?
Les actifs déjà en cache fichiers /assets/, manifest, favicon se chargent immédiatement. Pour une navigation qui échoue, le service worker sert le cache, puis à défaut une page offline.html ou un repli inline lisible.
Faut-il configurer le service worker si mon site est dans un sous-répertoire ?
Non. Le base path est dérivé de l'emplacement du worker : il fonctionne à la racine (/) comme dans un sous-répertoire (/blog/). Il s'enregistre sur les layouts admin et public sans réglage de votre part.
Prêt à commencer ?

Une PWA qui tient debout hors ligne, sans compromis sur l'admin

Activez le service worker offline de Clustraly et offrez à vos visiteurs des actifs instantanés en cache-first, des pages publiques toujours fraîches en network-first, et une page de repli quand le réseau manque pendant que l'admin, l'API et le temps réel restent, eux, toujours en direct.