web-dev-qa-db-fra.com

Comment forcer Internet Explorer (IE) à recharger VRAIMENT la page?

Lorsque je teste mon application Web avec Internet Explorer 8, je constate souvent qu’elle ne recharge pas la page et que je ne vois donc pas mes modifications. Cela a entraîné beaucoup de perte de temps et de frustration en se demandant pourquoi mon correctif "ne fonctionnait pas" - alors qu'en fait le navigateur n'a jamais chargé la version corrigée.

J'ai essayé le bouton Actualiser. J'ai essayé F5Control-F5Control-RControl-Shift-R, en portant Control en cliquant sur le bouton Actualiser, tout ce à quoi je pouvais penser - cela ne charge pas le nouveau contenu du serveur. Je l'ai confirmé avec Fiddler.

Comment puis-je dire à IE "je me fiche de ce que vous pensez avoir mis en cache, je veux recharger la page - non vraiment, je le pense cette fois-ci, honnêtement envers Dieu, je veux que vous réellement allez sur le serveur et téléchargez le tout encore "?

151
EMP
  1. Sélectionnez Outils >> Options Internet .
  2. Cliquez sur le bouton Paramètres dans Historique de navigation .
  3. Sélectionnez le Chaque fois que je visite la page Web bouton radio.
  4. Cliquez surOKpour fermer la boîte de dialogue Paramètres.
  5. Cliquez surOKpour fermer la boîte de dialogue Options Internet.
122
Gonzalo

Comme il est indiqué que IE8 est le navigateur, vous pouvez appuyer sur F12 pour ouvrir les outils de développement et sélectionner le menu Cache en haut, puis toujours actualiser à partir du serveur pour contourner le cache.

En bref, Appuyez sur F12. Cliquez Cache -> Toujours actualiser à partir du serveur

Vous pouvez simplement vider votre cache ici aussi, si telle est l'action souhaitée. L'option Toujours actualiser n'est pas une option globale et ne gênera pas les performances globales dans IE.

IE7 possède également des outils de développement, mais ils doivent être installés séparément. Vous pouvez également utiliser les outils de développement IE8 pour exécuter le navigateur en mode IE7.

42
Brandon

Ctrl+F5 in IE recharge la page en ignorant le cache

22
mfeingold

IE est très désireux de mettre en cache des pages, même lorsque vous lui dites de ne pas le faire via des en-têtes de cache. Microsoft KB 234067 explique les incantations requises. En bref, vous devez fournir les en-têtes suivants.

Pragma: no-cache
Cache-Control: no-cache
Expires: <some time in the past>

Définir Expires = -1 (comme recommandé dans l'article de la Base de connaissances) devrait fonctionner pour la plupart des frameworks; les navigateurs sont tenus de traiter les formats de date non valides comme étant passés ( RFC 2616 ).

Dans .NET, vous pouvez le faire sur une granularité page par page en utilisant cet ensemble de méthodes avant d'appeler la page Web:

HttpContext.Response.Cache.SetExpires(DateTime.UtcNow.AddDays(-1));
HttpContext.Response.Cache.SetValidUntilExpires(false);
HttpContext.Response.Cache.SetRevalidation(System.Web.HttpCacheRevalidation.AllCaches);
HttpContext.Response.Cache.SetCacheability(System.Web.HttpCacheability.NoCache);
HttpContext.Response.Cache.SetNoStore();

voir: http://www.localwisdom.com/blog/2012/10/force-a-page-refresh-on-a-asp-net-mvc-website/ fonctionne bien pour MVC3.0.

17
Marcelo Cantos

La barre d'outils de développeur Web comporte un bouton permettant d'effacer facilement le cache. Je l'utilise habituellement dans le cas que vous décrivez.

Ce n'est pas idéal, car vous ne voulez peut-être pas vider votre cache en entier, mais comme je n'utilise pas IE pour la navigation générale, cela fonctionne pour moi.

6
pkaeding

Cela se produit encore dans IE9. Étonnamment, la réponse est Ctrl-ShiftBouton -Refresh

4
PandaWood

Incidemment, le problème existera peut-être également pour les visiteurs de votre site Web. J'ai vu l'idée suivante dans un livre AJAX ...

Utilisez PHP pour ajouter un jeton aléatoire à l'URL actuelle, de sorte que le navigateur puisse faire croire à une page distincte.

3
Moshe

J'ai eu le même problème moi-même. Je crois que la seule façon de le faire est d'effacer le cache (Sécurité -> Supprimer l'historique de navigation). Cochez uniquement "Fichiers Internet temporaires".

J'espère que cela t'aides.

2
jchapa

Maintenez la alt ou ctrl touche lorsque vous cliquez sur le bouton Actualiser.

2
niaccm

Je sais que cela peut sembler un peu étrange ... mais une chose que j'ai remarquée récemment, c'est que vous obtenez parfois des résultats différents en fonction de COMMENT vous "actualisez". J'ai vu le comportement suivant:

F5 > charge du cache sans rafraîchissement,
Alt+DENTER > vraiment rafraîchit en ignorant le cache.
(Alt+D peut être remplacé en cliquant dans la barre d'adresse)

1
eidylon

Je conviens que l'ajout d'un jeton aléatoire à l'URL est la solution la plus fiable. Une fois implémenté, l'utilisateur n'a plus rien à faire.

Mis à part l'approche par jetons aléatoires, ce que j'ai tendance à toujours faire pour forcer un rechargement complet de la page et de tous ses fichiers dépendants, je place simplement mon curseur à la fin de l'URL et appuyez sur Entrée. Fonctionne à chaque fois ... et j'utilise IE 8.

1
Jerry

F12 -> CTRL+R est légèrement plus rapide pour IE9 +. Comme les gens l'ont mentionné, IE n'efface pas le cache de manière très intelligente, contrairement à Chrome.

1
Chris S