Forcer l'expiration du cache à partir d'un fichier JavaScript
J'ai une ancienne version d'un fichier JS mis en cache sur le navigateur de l'utilisateur, avec l'expiration fixée à 10 ans (depuis, j'ai appris comment définir expire en-têtes correctement sur mon serveur web). J'ai fait les mises à jour du fichier JS, et je veux que mes utilisateurs de profiter de eux.
- Est-il possible que mon serveur web peut forcer le navigateur de l'utilisateur pour effacer le cache pour cela, un fichier, un court de servir un nommé différemment fichier JS?
- Dans l'avenir, si expire en-têtes ne sont pas définies correctement (paranoïa), mon fichier JS expirent automatiquement lui-même et de forcer un rechargement après, disons, une journée s'est écoulée depuis qu'il a été mis en cache?
EDIT: Idéalement, je veux résoudre ce problème sans évolution des balises HTML sur la page qui héberge le script.
Bonne question 🙂
OriginalL'auteur Bilal and Olga | 2010-02-23
Vous devez vous connecter pour publier un commentaire.
En bref... pas de.
Vous pouvez ajouter quelque chose à la fin de l'adresse source de la balise script. Les navigateurs traiter cela comme un fichier différent de celui qu'ils ont actuellement mis en cache.
Pas sûr au sujet de vos autres options.
Bénéfice par écrit un confessionnal billet de blog sur les dangers de sarrasins mise en cache du contenu des décisions. Je vais reddit pour vous.
OriginalL'auteur Matt
En HTML5, vous pouvez utiliser le Cache de l'Application, de cette façon, vous pouvez contrôler quand le cache doit expirer
Vous devez ajouter le chemin d'accès au fichier manifeste
<!DOCTYPE HTML><html manifest="demo.appcache">
Dans votre démonstration.appcache fichier, vous pouvez simplement placer chaque fichier que vous souhaitez cache
Lorsque vous souhaitez que le navigateur à télécharger un nouveau fichier, vous pouvez mettre à jour le manifeste
Juste être sûr de modifier le manifeste de cache avec la date de publication ou de la version (ou autre chose) que lorsque le navigateur voit que le manifeste a changer il va télécharger tous les fichiers qu'il contient.
Si le manifeste n'est pas le changement, le navigateur ne sera pas de mise à jour du fichier local, même si le fichier a modifier sur le serveur.
Pour de plus amples renseignements, veuillez jeter un oeil à HTML5 Cache de l'Application
OriginalL'auteur meltix
Vous pouvez ajouter un paramètre fictif à votre Url
[e: f; b]
Le principal problème est que si vous définissez jusqu'à l'expiration d'un simple "Expire" en-tête, puis les navigateurs qui ont le fichier mis en cache ne sera même pas la peine de vous contacter. Même si il y avait un moyen pour que le script pour frapper dans le navigateur dans la tête et videz le cache de votre ancien script ne le fait pas, de sorte que vous n'avez aucun moyen d'obtenir cette fonctionnalité pour les clients.
OriginalL'auteur Pointy