5 votes

Est-il possible pour un travailleur de service de briser définitivement un site Web?

Imaginez que vous créez un travailleur de service qui met en œuvre une stratégie "d'abord hors ligne" (le cas d'utilisation typique des travailleurs de service), et que vous le déployez en production, mais qu'il ait un bug. Le bug signifie qu'il ne vérifie jamais réellement le serveur d'origine pour les mises à jour, même pour lui-même. Ainsi, une fois que le travailleur de service est enregistré pour un client donné lors de leur première visite, ce client ne verra jamais plus aucune mise à jour de ce site web (à moins que l'utilisateur ne désactive manuellement le travailleur de service en utilisant chrome://serviceworker-internals/ ou quelque chose). En d'autres termes, le site est cassé pour toujours pour ces utilisateurs.

Le scénario ci-dessus est-il possible? Si oui, existe-t-il une stratégie pour s'assurer que cela n'arrive jamais?

3voto

Linh Pham Points 1195

TL;DR

Il n'y aura pas de rupture permanente, vous pouvez toujours mettre à jour votre worker service et corriger le problème de mise en cache que vous avez fait.

Mais il y aura des chances que quelque chose ne soit jamais mis à jour si vous avez oublié de mettre à jour votre cache et de l'utiliser correctement. (en ce qui concerne le premier point, vous pouvez toujours corriger cela, pas de rupture permanente)


Réponse LONGUE

D'après ce que je sais, il y a certains scénarios peu recommandables lorsque vous vous appuyez trop sur l'utilisation de caches, MAIS cela dépend de la stratégie, cela n'est pas susceptible de se produire avec la stratégie "offline d'abord", mais avec les autres.

Si vous avez une connaissance avancée des ouvriers de service, vous saurez que nous pouvons équilibrer un certain type de requête du navigateur. Par exemple, nous pouvons faire quelque chose comme :

Offline d'abord

En ligne d'abord

Le plus rapide

Uniquement en ligne

Uniquement hors ligne

etc.. (les noms sont uniquement à titre illustratif)

Et si vous optez pour quelque chose comme Uniquement hors ligne pour certains fichiers/endroits, vous pourriez vous retrouver avec des endroits/fichiers qui ne seront jamais mis à jour.

Donc la réponse est : il y a toujours des chances que quelque chose tourne mal, mais pour la chose qui vous inquiète, cela n'arrive pas toujours. Si vous voulez éviter cela assurez-vous de toujours mettre à jour le contenu du cache pour "Offline d'abord" quand c'est disponible


Pour compléter la réponse de @anshulix je ne suis pas sûr si ce comportement venait d'un ancien worker service. Mais pour mon expérience récente, peu importe ce que vous faites, une fois le worker service installé, il essaiera toujours de se mettre à jour UNE FOIS à chaque fois que vous chargez le site.

Ainsi, vous pouvez toujours corriger vos erreurs immédiatement et l'utilisateur final obtiendra la correction après le premier chargement du site ou le deuxième chargement du site.

1voto

anshulix Points 182

Haha, non cela ne se passe pas de cette façon, le fichier de service-worker a une mise à jour périodique toutes les 24 heures, même si le premier service-worker était bogué, il vérifierait toujours sur le serveur s'il y a des changements et des mises à jour.

mdn

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X