80 votes

Travailleur des services de JavaScript fréquence de mise à jour (toutes les 24 heures?)

Selon cette doc sur MDN:

Après qu'il est téléchargé toutes les 24 heures environ. Il peutêtre téléchargé plus fréquemment, mais il doit être téléchargé toutes les 24h à d'éviter les mauvaises scripts d'être agaçant pour trop longtemps.

Est le même cas pour Firefox et google Chrome? OU effectue une mise à jour pour le service de travailleur javascript ne se produit lorsque l'utilisateur navigue sur le site?

194voto

Jeff Posnick Points 6850

Remarque: Comme de Firefox 57, et Chrome 68, ainsi que les versions de Safari et de Pointe que les travailleurs de services de soutien, le comportement par défaut a changé pour tenir compte de la mise à jour de travailleur des services de spécification. Dans ces navigateurs, le cache HTTP directives seront, par défaut, être ignoré lors de la vérification du travail de service de script pour les mises à jour. La description ci-dessous s'applique toujours aux précédentes versions de Chrome et Firefox.

Chaque fois que vous accédez à une nouvelle page qui est sous un travailleur des services du champ d'application, Chrome va faire un standard de requête HTTP pour le JavaScript de ressources qui a été adoptée à l' navigator.serviceWorker.register() appel. Supposons qu'il est nommé service-worker.js. Cette demande est faite en conjonction avec un système de navigation ou lorsqu'un travailleur est réveillé par l'intermédiaire, par exemple, un push événement. Il n'y a pas de processus d'arrière-plan que refetches chaque travailleur des services script toutes les 24 heures, ou quoi que ce soit automatisé comme ça.

Cette requête HTTP obéir à la norme de cache HTTP directives, à une exception près (qui est traité dans le paragraphe suivant). Par exemple, si votre serveur de jeu approprié-têtes de réponse HTTP qui indique la réponse en cache doit être utilisé pour 1 heure, puis dans l'heure suivante, à la demande du navigateur pour service-worker.js seront remplies par le cache du navigateur. Notez que nous sommes de ne pas parler du Cache de Stockage de l'API, ce qui n'est pas pertinente dans cette situation, mais plutôt navigateur standard, la mise en cache HTTP.

La seule exception à la norme de mise en cache HTTP règles, et c'est là que les 24 heures de chose arrive, c'est que les navigateurs vont toujours aller sur le réseau si l'âge de l' service-worker.js entrée dans le cache HTTP est supérieure à 24 heures. Donc, sur le plan fonctionnel, il n'y a pas de différence entre l'utilisation d'un max-age de 1 jour ou 1 semaine ou 1 an-ils vont tous être traités comme si l' max-age a 1 jour.

Les fournisseurs de navigateur veulent s'assurer que les développeurs n'avez pas accidentellement le lancement d'un "cassé" ou buggy service-worker.js qui obtient servi avec un max-age de 1 an, laissant les utilisateurs avec ce qui pourrait être persistant, brisé de l'expérience web pour une longue période de temps. (Vous ne pouvez pas compter sur vos utilisateurs de savoir à effacer leurs données de site ou pour passer de recharger le site.)

Certains développeurs préfèrent explicitement servir leurs service-worker.js avec des en-têtes de réponse à l'origine de tous cache HTTP est désactivé, ce qui signifie qu'une demande de réseau pour service-worker.js est effectué pour chaque et chaque navigation. Une autre approche pourrait être d'utiliser un très, très court - max-age-dire d'une minute pour fournir un certain degré de limitation dans le cas où il existe un très grand nombre de rapide la navigation d'un utilisateur unique. Si vous voulez vraiment réduire les demandes et sommes confiants que vous ne serez pas la mise à jour de votre service-worker.js de sitôt, vous êtes libre de définir une max-age de 24 heures, mais je vous conseille d'aller avec quelque chose de plus court sur la chance vous à l'improviste la nécessité de redéployer.

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