GeotrekCE / Geotrek-rando-v3

Geotrek public data website (version 3)
MIT License
16 stars 16 forks source link

PWA - Stockage #604

Open bastyen opened 2 years ago

bastyen commented 2 years ago

Le service worker stocke des données avec une réponse opaque ce qui demande beaucoup trop de place.

stockage

J'ai atteint ce résultat très rapidement en naviguant sur l'application. C'est en grande partie à cause du stockage des tuiles rasters.

Voir : https://developers.google.com/web/tools/workbox/guides/storage-quota

Browsers automatically inflate the quota impact of those opaque responses as a security consideration. In Chrome, for instance, even an opaque response of a few kilobytes will end up contributing around 7 megabytes towards your quota usage.

camillemonchicourt commented 2 years ago

OK, merci pour ce retour intéressant. Cela ne se produit que quand on télécharge des randos en offline ou tout le temps ? Je ne comprends pas bien le problème, si c'est le fait que le stockage n'est pas clair, ou que l'application stocke beaucoup trop de données ?

Quand on télécharge des randos en offline, c'est normal que ça prenne de la place du fait du fonctionnement mis en place : https://github.com/GeotrekCE/Geotrek-rando-v3/issues/287

Mais sinon, non. Et on avait imaginé en évolution pouvoir indiquer dans la page des Contenus offline, le volume de données stockées pour en informer l'utilisateur et faciliter la suppression des contenus offline.

bastyen commented 2 years ago

Le téléchargement d'une randonnée de façon explicite fonctionne correctement. Les données sont stockées dans le local storage et la base de données indéxée.

Par contre, le service worker met en cache du contenu dont la réponse est opaque lors de la navigation dans l'application et c'est à éviter. Tu peux facilement t'en rendre compte en regardant le stockage dans l'outil de développement d'un navigateur.

camillemonchicourt commented 2 years ago

OK merci pour les précisions. Donc je comprends qu'il y a une correction/amélioration à faire à ce niveau. Merci.

babastienne commented 9 months ago

@dtrucs peux-tu compléter le ticket sur les avancements qui ont étés effectués ces derniers mois ?

dtrucs commented 9 months ago

Depuis la version 3.12.0 et notament cette pull request, des règles ont été durcies pour ne pas sauvegarder des tuiles raster dans les services worker.

Cela peut être amélioré puisque nous ne garantissons pas cette limitation pour tous les serveurs de tuiles (voir https://github.com/GeotrekCE/Geotrek-rando-v3/pull/849/files#diff-4679766c38de16cf471d24a6e108655f9d7cabc36ff2e660705cb69a753d7c60R33-R40)

camillemonchicourt commented 9 months ago

OK intéressant. Donc les URL des tuiles sont déclarées, OK On pourrait anticiper et préparer la bascule du Géoportail IGN vers la Geoplateforme IGN où les urls des flux WMTS vont passer sur "data.geopf.fr".

dtrucs commented 9 months ago

Pour éviter à l'avenir de maintenir une liste de condition définie par les hosts (non fiable), il serait intéressant d'ajouter un paramètre GET aux images de tuiles lorsqu'elles sont transmises à Leaflet. Ensuite lorsque Leaflet rend la page, il conviendrait de vérifier la présence de ce GET pour exclure leur sauvegarde dans le cache storage.