web-dev-qa-db-fra.com

Quand et comment un PWA se met-il à jour?

Autant que je sache, une fois que vous avez cliqué sur "Ajouter à l'écran d'accueil" sur le site Web d'un PWA, le navigateur génère un fichier .apk à l'aide du fichier manifeste fourni. Il l'installe comme une application normale.

J'ai remarqué que lorsque je mets à jour le site Web, l'application affiche également le contenu mis à jour, ce qui suggère que l'application n'est qu'un wrapper permettant d'accéder au site Web. J'ai également remarqué que la mise à jour d'un site Web ne s'affiche pas instantanément, je suppose que cela est dû à la mise en cache interne.

Ma question est la suivante: mes hypothèses sont-elles correctes? Ou plus généralement, quand et comment les AHP sont-ils mis à jour et existe-t-il un moyen d'imposer une mise à jour sur un ordinateur client?

22
Tobias Würth

Aucun scénario de cache (Aucun agent de service): Votre application PWA sera mise en cache uniquement lorsque vous utilisez un agent de service. Manifest.json vous aidera à ajouter votre application Web à l'écran d'accueil avec une icône et à l'ouvrir sans barre d'adresse. Si vous n'avez pas de technicien de service ou si votre navigateur ne le prend pas en charge, la page Web sera téléchargée à chaque fois. Pas de cache.

Scénario de mise en cache (avec un opérateur de service): En supposant que des opérateurs de service soient configurés, ils peuvent mettre en cache par cache ou par prélecture les fichiers configurés pour mise en cache (vous pouvez inclure ou exclure la mise en cache de tout contenu provenant de HTML, CSS, d'images vers des réponses d'API JSON/XML).

Après le cache initial, le technicien de service utilisera le cache pour traiter la demande réseau de vos applications en fonction de approche du cache que vous avez mise en œuvre à partir de celles ci-dessous.

  • cache retomber sur le réseau
  • Réseau tombant en cache
  • Cache puis réseau

La plupart des applications choisissent précaché en raison des avantages de performances et recherchent de nouveaux fichiers au chargement, si des modifications trouvées seront chargées à la prochaine session ou à l'invite de l'utilisateur à actualiser. Avec cette solution, chaque fichier aura une longue chaîne de hachage pour chaque fichier mis en cache par l'agent de service. Lors du chargement de chaque application, le code de hachage du serveur sera extrait pour rechercher le fichier à mettre à jour et le même fichier sera mis à jour dans un thread de travail de service distinct. Vous pouvez le remarquer dans l’onglet Réseau -> Réponse de l’agent de maintenance dans chrome outils de développement.

Si vous choisissez l'approche du premier réseau, vous pouvez éviter d'afficher l'ancien contenu lors du chargement initial, tout en perdant des avantages de performances significatifs liés à la mise en cache.

21
Anand