J'ai un simple html:
<html> <body> <head> <meta charset="utf-8"> <meta http-equiv='cache-control' content='no-cache'> <meta http-equiv='expires' content='0'> <meta http-equiv='pragma' content='no-cache'> <script src="test.js"></script> </body> </html>
Dans test.js j'ai changé une fonction Javascript, mais mon navigateur met en cache ce fichier. Comment désactiver le cache pour le script src?
Mise à jour: comment ajouter un script aléatoire à l'aide de javascript?
Ajouter une chaîne de requête aléatoire à la src
Vous pouvez soit le faire manuellement en incrémentant la chaîne automatique chaque fois que vous effectuez une modification:
<script src="test.js?version=1"></script>
Ou si vous utilisez une langue côté serveur, vous pouvez générer automatiquement ceci:
ASP.NET:
<script src="test.js?rndstr=<%= getRandomStr() %>"></script>
Vous trouverez plus d'informations sur le cache-busting ici:
http://curtistimson.co.uk/post/front-end-dev/what-is-cache-busting/
<script src="test.js?random=<?php echo uniqid(); ?>"></script>
EDIT: Ou vous pouvez utiliser l'heure de modification du fichier afin qu'il soit mis en cache sur le client.
<script src="test.js?random=<?php echo filemtime('test.js'); ?>"></script>
Configurez votre serveur Web pour envoyer des en-têtes HTTP de contrôle de mise en cache pour le script.
En-têtes faux dans les documents HTML:
Vous pouvez ajouter un queryString à votre src et le modifier uniquement lorsque vous publierez une version mise à jour:
<script src="test.js?v=1"></script>
De cette façon, le navigateur utilisera la version mise en cache jusqu'à ce qu'une nouvelle version soit spécifiée (v = 2, v = 3 …)
Vous pouvez ajouter une chaîne aléatoire (ou datetime) comme chaîne de requête à l'URL qui pointe vers votre script. Ainsi:
<script type="text/javascript" src="test.js?q=123"></script>
Chaque fois que vous actualisez la page, vous devez vous assurer que la valeur de 'q' est modifiée.