Se connecter

Informatique

Création de sites web

Sujet : Node JS et file cache problème !
1
SuperNG1Chuck
Niveau 10
06 mars 2018 à 21:23:49

Salut, j'ai une application web en ligne faite en nodejs que je met régulièrement a jour sauf que l'utilisateur doit vider le cache pour que le site fonctionne !
Comment faire pour que lors du un update des fichiers le clients mettent a jour les fichier sans passer par le cache :( ?

Merci

lisarael
Niveau 13
06 mars 2018 à 23:23:15

L'invalidation de cache, c'est à la fois simple et complexe. Tu as plusieurs possibilités, voici quelques unes des plus simples :
- ajouter un timestamp dans les URL des scripts que tu charges (par exemple ./js/app.js?t=123456)
- vérifier la configuration de ton serveur (apache ou nginx) pour corriger/définir une durée de vie pour tes fichiers, au-delà de laquelle le navigateur client ne pourra pas se baser sur le cache
- si tu passes par webpack pour ton application, tu peux générer des petits fichiers (des "chunks" dont le nom changera en fonction de tes builds et de leur stabilité - les parties de ton script qui ne bougent que peu souvent gardent des noms fixes, celles qui changent, elles, changent de nom)

Il y a pas mal de possibilités, mais ce n'est pas toujours facile. Comme le veut le vieil adage :

There are only two hard things in Computer Science: cache invalidation and naming things.
-- Phil Karlton

SuperNG1Chuck
Niveau 10
07 mars 2018 à 07:53:15

Merci pour ta réponse, alors oui j'utilise nginx mais un temps prédéfini ne m'intéresse pas en premier lieu car si je met 1 jours en gros pendant 1 jours l'application ne fonctionnera plus chez ceux qui s'y connaisse pas trop

Pour le timespan ça veut dire que tous les fichier JS modifie je leur rajoute/change une variable différente a chaque fois ? Ou bien c'est pareil c'est toutes les duree du timespan que le cache se videra

Je ne connaissais pas cette adage c'est dingue qu'en 2018 ils soit toujours d'actualités :p

1
Sujet : Node JS et file cache problème !
   Retour haut de page
Consulter la version web de cette page