3 votes

Quelle est la meilleure stratégie de travailleur de service pour create-react-app ?

Chaque mise à jour du code dans la version de production affiche un écran blanc à l'utilisateur jusqu'à ce qu'il rafraîchisse la page. Quelle est la meilleure stratégie de travailleur de service pour que les mises à jour de code soient poussées de manière transparente vers l'utilisateur (pas de rafraîchissement de la page ou de vidage du cache nécessaire) ?

Le comportement par défaut du travailleur de service n'est pas idéal. Il semble que chaque mise à jour du code de production entraîne l'affichage d'un écran blanc dans le navigateur jusqu'à ce que l'utilisateur rafraîchisse manuellement la page. Je comprends que cela peut nécessiter quelque chose du type sw-precache et l'implémentation de workbox pour la fonctionnalité de travailleur de service personnalisé - tout cela est très bien, et j'ai essayé et obtenu que ces bibliothèques fonctionnent au point que cela imite toujours exactement le même comportement (donc je pense que le projet est essentiellement prêt pour que le travailleur de service correct soit implémenté sans éjection). Cependant, je ne sais toujours pas quelle est la meilleure stratégie de mise en cache/le meilleur travailleur de service à utiliser pour obtenir le résultat souhaité ?

2voto

Jad Rizk Points 91

Heyy Timothy !

Je pense que vous avez déjà trouvé la réponse à votre question. J'espère que cette réponse aidera les futurs développeurs dans leur parcours.

Les stratégies auxquelles vous faites référence sont appelées stratégies de mise en cache. Voici une liste de celles qui sont couramment utilisées :

  • networkOnly - récupérer uniquement sur le réseau
  • cacheOnly - récupérer uniquement à partir du cache
  • fastest - aller chercher dans les deux, et répondre avec celui qui vient en premier
  • cacheFirst - récupérer à partir du cache, mais aussi récupérer à partir du réseau et mettre à jour le cache

Par défaut, le travailleur de service de la CRA utilise l'option cache-first stratégie.

Dans votre cas, vous avez la possibilité de choisir entre 2 stratégies :

  • networkOnly Stratégie

Pour : Rend toujours la dernière version de l'application (pas d'écran blanc).

Inconvénient : l'utilisateur devra à chaque fois aller chercher l'application sur le réseau.

  • networkFirst Stratégie

Cette stratégie peut être utilisée dans votre cas. Vous pouvez configurer votre logiciel pour qu'il soit à l'affût d'une mise à jour de la version. Si une nouvelle version est trouvée, vous pouvez afficher un petit grille-pain disant "Hé là, une nouvelle version est disponible, veuillez cliquer ici pour l'actualiser".


Vous pouvez également consulter les liens suivants pour plus d'informations :

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