Development #24405
pwa : fournir un service worker
0%
Description
Basique et générique.
Fichiers
Demandes liées
Révisions associées
Historique
Mis à jour par Frédéric Péters il y a presque 6 ans
- Fichier 0001-pwa-add-generic-service-worker-24405.patch 0001-pwa-add-generic-service-worker-24405.patch ajouté
- Fichier 0001-grandlyon-gnm-use-generic-service-worker-24405.patch 0001-grandlyon-gnm-use-generic-service-worker-24405.patch ajouté
- Statut changé de Nouveau à En cours
- Patch proposed changé de Non à Oui
Mis à jour par Anonyme il y a presque 6 ans
- Lié à Development #24400: pwa : possibilité d'utiliser un template pour le manifest.json ajouté
Mis à jour par Anonyme il y a presque 6 ans
(n.b. : appliquer sur combo ce patch https://dev.entrouvert.org/issues/24400 avant celui de ce ticket-ci, sinon ça ne passe pas)
Passer par une vue django pour servir un fichier js statique me pose question, mais ici je vois qu'on a besoin d'un numéro de version apporté par la librairie gadjo de tags de template.
On a besoin d'un numéro de version pour versionner le cache du Service Worker, mais start_timestamp
va renvoyer une version différent à chaque requête, n'est-ce pas ? Est-ce qu'il ne vaut pas mieux de vraiment avoir un numéro de version venant du package combo lui-même ? À chaque release combo, on aura un service worker différent installé dans les navigos qui consulteront les PWA.
Si on se dirige vers le service d'un fichier "quasi-statique" par Django et pas Nginx (dont c'est plus le boulot), la politique de cache des navigateurs pour les service-workers n'est pas bien claire encore : 24h ? plus ? En attendant dans ce ticket, peut-on rajouter un header "cache-control" pour 24h dans le rendu de l'url.
Mis à jour par Frédéric Péters il y a presque 6 ans
mais start_timestamp va renvoyer une version différent à chaque requête, n'est-ce pas ?
Non, ça reprend le timestamp du démarrage du service. C'est également ce qu'on utilise pour "gérer" le cache des fichiers statiques dans Gadjo.
Est-ce qu'il ne vaut pas mieux de vraiment avoir un numéro de version venant du package combo lui-même ?
Ça passerait à côté de changements amenés via publik-base-theme. Aussi, s'il faut faire évoluer ce numéro de version, il doit devenir plus dynamique encore, pour par exemple inclure les changements à la page /offline/ éventuelle.
Si on se dirige vers le service d'un fichier "quasi-statique" par Django et pas Nginx (dont c'est plus le boulot), la politique de cache des navigateurs pour les service-workers n'est pas bien claire encore : 24h ? plus ? En attendant dans ce ticket, peut-on rajouter un header "cache-control" pour 24h dans le rendu de l'url.
On ne demande aujourd'hui pas à nginx de poser cet entête (ex: https://portail-citoyen.guichet-recette.grandlyon.com/static/grandlyon-gnm/service-worker.js); ça me va plutôt bien de ne pas tenter d'optimisation sans mesure.
Mis à jour par Anonyme il y a presque 6 ans
- Fichier service-worker.diff service-worker.diff ajouté
D'accord. Autre chose, par rapport à l'ancien script, je me demande pourquoi tu supprimes "offlineImage" ? Cette fonctionnalité peu être utile dans tous les cas non ?
Mis à jour par Anonyme il y a presque 6 ans
Avec ta réponse sur offlineImage, je donne mon Ack, et si possible plus tard poser un ticket d'évolution pour la remise en place de ce SVG.
Frédéric Péters a écrit :
On ne demande aujourd'hui pas à nginx de poser cet entête (ex: https://portail-citoyen.guichet-recette.grandlyon.com/static/grandlyon-gnm/service-worker.js); ça me va plutôt bien de ne pas tenter d'optimisation sans mesure.
Je suis d'accord mes remarques sont prématurées, je voulais noter qu'avec une généralisation de la PWA, on aurait 3 requêtes à Combo pour afficher une page d'un portail, là où il n'y avait qu'une requête : la page HTML, le manifest.json et le service-worker.
Dans le cas où ça poserait problème de charge à l'avenir, on pourra trouver des solutions type : compilation des templates périodique + mise en place dans un répertoire servi par Nginx directement.
Mis à jour par Frédéric Péters il y a presque 6 ans
En vrai pour une page il y a déjà plus de requêtes que ça, pour l'affichage ajax des cellules, et ce sont là des requêtes qui coûtent en base de données.
Mis à jour par Anonyme il y a presque 6 ans
Frédéric Péters a écrit :
En vrai pour une page il y a déjà plus de requêtes que ça, pour l'affichage ajax des cellules, et ce sont là des requêtes qui coûtent en base de données.
Oui.
Par contre, je viens de remarque dans le js, on peut peut-être enlever le else ligne 114 qui n'est jamais utile avec if (true || ...)
Mis à jour par Frédéric Péters il y a presque 6 ans
- Statut changé de En cours à Résolu (à déployer)
Yep, lignes retirées et commit poussé.
commit dd7c1938780fb32ed72be54e95d09d507401e0f5 Author: Frédéric Péters <fpeters@entrouvert.com> Date: Sun Jun 10 13:30:22 2018 +0200 pwa: add generic service worker (#24405)
Mis à jour par Frédéric Péters il y a presque 6 ans
- Lié à Development #25068: PWA standard Publik ajouté
Mis à jour par Frédéric Péters il y a plus de 5 ans
- Statut changé de Résolu (à déployer) à Solution déployée
pwa: add generic service worker (#24405)