Pendant le développement, je dois tout le temps "vider le cache" dans Firefox pour lui faire utiliser la dernière version des fichiers JavaScript.
Existe-t-il un type de paramètre (à propos de: config) pour désactiver complètement la mise en cache des fichiers JavaScript? Ou, sinon, pour tous les fichiers?
Entrez "about: config" dans la barre d’adresse de Firefox et définissez:
browser.cache.disk.enable = false
browser.cache.memory.enable = false
Si vous développez localement ou utilisez le nouvel attribut manifeste de HTML5, vous devrez peut-être également définir les éléments suivants dans about: config -
browser.cache.offline.enable = false
La barre d'outils pour les développeurs Web dispose d'une option permettant de désactiver la mise en cache, ce qui facilite grandement son activation et sa désactivation lorsque vous en avez besoin.
Avez-vous essayé d'utiliser CTRL-F5 mettre à jour la page?
Il n’existe pas d’option spécifique permettant de désactiver la mise en cache uniquement pour JavaScript; vous devrez désactiver cette option.
FireBug dispose d'une option pour désactiver le cache du navigateur dans le menu déroulant de l'onglet Réseau.
Sur la même page que vous souhaitez désactiver la mise en cache, procédez comme suit: FYI: la version sur laquelle je travaille est la 30.0
Vous pouvez :
Après cela, la page sera rechargée (vous êtes allumée) et tout est remis en mémoire. Toutes les demandes ultérieures sont également vérifiées. Vous pouvez laisser le développeur Web ouvert en permanence pour garder un œil et vous assurer qu'il est toujours activé (cochez). .
Firefox 48 Outils de développement
Vous permet de désactiver le cache uniquement lorsque la boîte à outils est ouverte, ce qui est parfait pour le développement Web:
https://stackoverflow.com/a/27397425/895245 a un contenu similaire, mais le positionnement a un peu changé depuis.
Si vous travaillez avec un code côté serveur, vous pouvez générer un nombre aléatoire et l'ajouter à la fin du code source de la manière suivante ...
src = "yourJavascriptFile.js? randomNumber = 434534"
randomNumber étant généré aléatoirement à chaque fois.
Je sais que je ressuscite une question ancienne, mais j’essayais de résoudre ce problème aujourd’hui et d’avoir une solution alternative. Basculer la mise en cache lorsque je veux tester n'était pas vraiment acceptable pour moi, et comme d'autres l'ont mentionné, l'actualisation compliquée (Ctrl + Maj + r) ne fonctionne pas toujours.
Au lieu de cela, j'ai choisi de mettre les éléments suivants dans mon fichier vhost.conf (peut également être créé dans un fichier .htaccess) sur mon environnement de développement:
<FilesMatch "\.(js|css)$">
FileETag None
<IfModule mod_headers.c>
Header unset ETag
Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
Header set Pragma "no-cache"
Header set Expires "Wed, 11 Jan 1984 05:00:00 GMT"
</IfModule>
</FilesMatch>
Sur mon environnement de développement, cela garantit que les fichiers js et css sont toujours récupérés. En outre, cela n’affecte pas le reste de ma navigation et fonctionne également pour tous les navigateurs. Tester chrome/ie, etc., est également facile.
J'ai trouvé l'extrait ici, ainsi que d'autres astuces utiles sur Apache: http://www.askapache.com/htaccess/using-http-headers-with-htaccess.html#prevent-caching-with-htaccess =
Pour être sûr que mes clients voient toujours la dernière version en production, nous incrémentons la chaîne de requête sur le js include de chaque mise à jour, c.-à-d.
jquery.somefile.js?v=0.5
Cela oblige les navigateurs de mes clients à mettre à jour leur cache local lorsqu'ils voient une nouvelle chaîne de requête, mais met ensuite la nouvelle copie en cache jusqu'à ce que le fichier soit à nouveau mis à jour.
Vous pouvez utiliser CTRL-F5 recharger en contournant le cache.
Vous pouvez définir les préférences dans Firefox pour ne pas utiliser le cache
network.http.use-cache = false
Vous pouvez configurer votre serveur Web pour envoyer des en-têtes no-cache/Expires/Cache-Control pour les fichiers js.
Voici un exemple pour le serveur Web Apache.
La meilleure stratégie consiste à concevoir votre site de manière à créer une URL unique pour vos fichiers JS, qui est réinitialisée à chaque changement. De cette manière, il est mis en cache lorsqu'il n'y a pas eu de changement, mais est immédiatement rechargé lorsqu'un changement survient.
Vous devez vous adapter à vos outils d’environnement spécifiques, mais si vous utilisez PHP/Apache, voici une excellente solution pour vous et les utilisateurs finaux.
http://verens.com/archives/2008/04/09/javascript-cache-problem-solved/
Les deux dernières solutions présentées présentent des avantages et des inconvénients, mais ce sont toutes deux d'excellentes solutions IMHO.
Vous pouvez ou non souhaiter que votre identifiant de session soit intégré à votre URL de cette manière pour une sécurité renforcée. Mais dans le développement cela ne devrait pas avoir d'importance, mais que se passe-t-il si vous oubliez de l'enlever? Aussi ça marche vraiment? N'avez-vous pas besoin de quelque chose comme un générateur de nombres séquentiels (nombre de hits stockés dans la session, ou peut-être même si 1 puis 0, si 0 puis 1)?
L'ajout d'un identifiant de session (ou d'un séquenceur) signifie que vous devez vous souvenir de l'ajouter à toutes les ressources que vous ne souhaitez pas mettre en cache. D’un côté, c’est mieux, car vous pouvez simplement inclure votre identifiant de session avec uniquement la ressource que vous développez et testez activement. D'un autre côté, cela signifie que vous devez faire cela et que vous devez vous rappeler de retirer cela pour la production.
La modification du fichier vhost.conf ou du fichier .htaccess fait parfaitement l'affaire sans qu'il soit nécessaire de se souvenir d'ajouter et de supprimer l'identifiant de session. Mais l'inconvénient est que les performances de toutes les ressources js et css seront affectées, et si vous avez des fichiers volumineux, cela va vous ralentir.
Les deux solutions semblent excellentes et élégantes - cela dépend de vos besoins.
J'utilise CTRL-SHIFT-DELETE qui active la fonctionnalité de confidentialité, vous permettant d'effacer votre cache, réinitialiser les cookies, etc., tout à la fois. Vous pouvez même le configurer pour qu'il le FAIT, au lieu d'afficher une boîte de dialogue vous demandant de confirmer.
Dans les versions supérieures de Firefox, comme Nightly, il existe une option appelée "désactiver le cache", que vous pouvez trouver en cliquant sur l'engrenage. Et ces options ne fonctionnent que dans la session en cours, ce qui signifie que lorsque vous fermez l'inspecteur et que vous le redémarrez, vous devez le vérifier à nouveau si vous voulez que la capture soit désactivée.
Après 2 heures de navigation pour diverses alternatives, c’est quelque chose qui a fonctionné pour moi.
Mon exigence était de désactiver la mise en cache des fichiers js et css dans mon application Web sécurisée Spring. Mais en même temps, mettre en cache ces fichiers "au sein" d'une session particulière.
L'une des approches recommandées consiste à transmettre un identifiant unique à chaque demande.
Et voici ce que j'ai fait: - Au lieu de
<script language="javascript" src="js/home.js"></script>
J'ai utilisé
<script language="javascript" src="js/home.js?id=${pageContext.session.id}"></script>
Tous les inconvénients de l'approche ci-dessus sont les bienvenus. Problèmes de sécurité ?
Dans Firefox 45, les options de cache disque peuvent être définies en modifiant la valeur de: browser.cache.disk.enable.
La valeur peut être définie sur la page "about: config".
Le http://kb.mozillazine.org/About:config_entries#Browser J'ai trouvé la description suivante pour "browser.cache.disk.enable":
True (valeur par défaut): Utiliser le cache disque, dans la limite de la capacité spécifiée dans browser.cache.disk.capacity False: Désactiver le cache disque (même effet que de définir browser.cache.disk.capacity sur 0)
Tout d'abord, cela peut être facilement fait, par exemple. by PHP pour forcer le navigateur à renouveler les fichiers en fonction de la date de mise en cache (date d'expiration). Si vous en avez simplement besoin pour des besoins expérimentaux, essayez alors d'utiliser ctrl + maj + del pour effacer tout le cache à Une fois dans le navigateur Firefox, la troisième solution consiste à utiliser de nombreux add-ons existants pour Firefox afin d'effacer le cache en fonction de la chronologie.