2010-05-03 4 views
42

Comment puis-je désactiver le cache dans IE8? Nous faisons du développement Javascript et le testons dans IE8, mais nous devons effacer le cache chaque fois que nous apportons des modifications aux fichiers Javascript.Comment désactiver le cache dans InternetExplorer 8

+1

Si vous avez des problèmes avec cela, vos utilisateurs pourraient aussi. Mieux vaut utiliser l'une des réponses non acceptées pour forcer un rafraîchissement du serveur. – user420667

Répondre

65

Aller à Options Internet. Sur le Général onglet, sous Historique de navigation cliquez sur Paramètres. Sélectionnez le "Chaque fois que je visite la page Web" bouton radio.

Cela ne "désactive" pas le cache en soi, mais il devrait résoudre votre problème sous-jacent - les fichiers JS doivent être rechargés à chaque fois.

+0

Est-ce que ça marchera 100% du temps? – portoalet

+0

Ce n'est pas quelque chose que je peux vous garantir, il vous suffira de le tester. – EMP

+6

Dans mon expérience, cela ne fonctionne pas pour les pages imbriquées ou les contrôles qui contiennent javascript. –

16

Ctrl +F5 devrait provoquer un rafraîchissement de la page complète, y compris tout ce que le javascript mis en cache. De temps en temps, vous aurez toujours besoin d'un cache clair, car même Ctrl + F5 ne fonctionnera pas, pour des raisons qui dépassent la compréhension, IE ne peut même pas se rafraîchir à 100% du temps.

+1

hm c'est assez dangereux pour le développement alors .. – portoalet

11

Si cela échoue, un paramètre aléatoire sur la chaîne de requête fera:

index.html a = 346456

3

Ctrl +Maj +Del ouvre la boîte de dialogue Effacer les données privées (ou sélectionnez dans le menu de sécurité). Décochez tout sauf les deux premiers éléments pour effacer uniquement le cache.

Vous ne devriez pas avoir à vider le cache. Si vous accédez à vos fichiers js via un serveur Web (tel que IIS exécuté localement), les mécanismes de contrôle de cache normaux doivent faire l'affaire. Si ce n'est pas le cas, un Ctrl + F5 résout généralement le problème.

+0

Le problème est qu'en production nous voulons que le navigateur utilise le cache car les javascripts sont massifs. De quel mécanisme de contrôle de cache parlez-vous? – portoalet

+0

Je parlais de développement et de tests. Les en-têtes HTTP «Last-Modified», «If-Modified-Since» et «ETag» permettent au navigateur et au serveur de déterminer si un fichier a été modifié et, le cas échéant, de mettre à jour la version mise en cache du navigateur. – josh3736

+0

Génial, ça a marché! Mon problème était CSS ne rend pas quand changé. 'Ctrl + Shift + Del' *** ne fonctionnait pas ***, cependant' Ctrl + F5' a finalement effacé le cache. –

5

Afin de désactiver le cache du navigateur. Suivez les instructions ci-dessous:

MS IE

  1. à partir d'un menu, sélectionnez "Outils" pour IE5 ou "Voir" pour IE4
  2. sélectionnez "Options Internet"
  3. dans "Fichiers Internet temporaires" section cliquez sur "Paramètres"
  4. sélectionnez "Chaque visite de la page" pour "Vérifier les nouvelles versions de pages stockées" enregistrer les paramètres J'espère que cela peut aider s'il vous plaît vérifier
+1

Pour IE8 et IE9, allez dans Options Internet -> onglet Général. Dans la section Historique de navigation, cliquez sur le bouton Paramètres, puis choisissez "Chaque fois que je visite la page Web" dans la section Fichiers Internet temporaires, puis cliquez sur OK. – furman87

+0

Identique dans IE 10 (pour le bureau). – BrainSlugs83

10

Chargement de JavaScript de cette façon.

<html> 
... 
<script type="text/javascript"> 
document.write('<script src="yourscript.js?'+Math.random()+'"></script>'); 
</script> 
... 
</html> 

Edit: Dans le cas où ce n'est pas évident, retirez ce code dès que vous entrerez dans la production!

+2

Ne le faites que si vous développez, car la mise en cache est là pour accélérer les temps de chargement des pages pour les bons navigateurs. Mais alors, cela rendra plus difficile de revenir et de trouver, alors peut-être utiliser une variable à la place. –

+0

Il ressemble vraiment à un hack et peut être facilement oublié de l'enlever avant la mise en production. –

0

Peut-être un moyen plus simple de ne pas rafraîchir l'utilisateur est de simplement renommer les fichiers js (et css). C'est ce qui a fonctionné pour moi ... comme le serveur n'a pas aimé un nombre aléatoire après le fichier .js

+1

Un autre hack consiste à ajouter une chaîne de requête aléatoire * à la fin du fichier (c'est-à-dire "http://monsite.com/myscript.js?random=B6646B155E" où aléatoire est une valeur différente à chaque fois - le serveur devrait l'ignorer, mais le navigateur évitera d'utiliser une version en cache.) Ceci est utile lorsque A.) vous voulez forcer TOUS les clients à obtenir le dernier script (pas seulement votre machine dev) et B.) vous ne le faites pas avoir accès aux paramètres du serveur (par exemple lorsqu'une page expire). – BrainSlugs83

2

Si vos fichiers javascript sont servis exclusivement à partir d'un sous-répertoire, vous pouvez activer l'expiration immédiate du contenu de ce répertoire dans IIS. J'ai récemment eu ce problème en servant le contenu d'un sous-répertoire et c'était la solution la plus rapide et la plus simple que j'ai trouvée.

+1

Cela ressemble à la meilleure solution et cela fonctionne quel que soit le serveur (pas seulement IIS). –

1

Ouvrez les outils de débogage IE (F12), Cache dans le menu et sélectionnez Toujours actualiser à partir du serveur. Cela signifie que vous devez garder les outils de débogage ouverts.

4

frappé « Fn F12 » pour ouvrir les outils de développement

cliquez sur Cache

choisissez « rafraîchir toujours du serveur »

Chaque fois que vous actualisez il faut effacer le cache, mais il y a aussi rapide accéder à la suppression du cache à partir du menu du cache ou des raccourcis actifs lorsque les outils de développement sont ouverts. * Remarque: vous devez laisser la fenêtre des outils de développement ouverte, elle ne doit pas nécessairement être à l'avant, mais elle doit rester ouverte pour que le cache reste désactivé.

Questions connexes