2009-12-09 23:52:52 +0000 2009-12-09 23:52:52 +0000
155
155
Advertisement

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

Advertisement

Lorsque j'utilise Internet Explorer 8 pour tester mon application web, je constate souvent qu'il ne recharge pas la page, donc je ne vois pas mes modifications. Cela m'a fait perdre beaucoup de temps et m'a frustré en me 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 Rafraîchir. J'ai essayé F5, Control-F5, Control-R, Control-Shift-R, en maintenant le bouton Control enfoncé tout en cliquant sur le bouton Refresh, tout ce à quoi j'ai pu penser - il ne charge pas réellement 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 sens cette fois, honnêtement, je veux que vous alliez en fait sur le serveur et que vous téléchargiez tout à nouveau” ?

Advertisement

Réponses (12)

126
126
126
2009-12-09 23:57:24 +0000
  1. Sélectionnez Outils >> Options Internet.
  2. Cliquez sur le bouton Réglages dans Historique de la navigation.
  3. Sélectionnez le bouton radio Chacune des fois que je visite la page web.
  4. Cliquez sur OK pour fermer la boîte de dialogue des paramètres.
  5. Cliquez sur OK pour fermer la boîte de dialogue des options Internet.
43
43
43
2010-07-08 18:30:53 +0000

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 et ensuite toujours rafraîchir depuis le serveur pour contourner le cache.

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

Vous pouvez simplement vider votre cache ici aussi, si c'est l'action souhaitée. L'option “Always refresh” n'est pas une option globale et n'entravera pas les performances globales dans IE.

IE7 dispose également d'outils de développement, mais ils doivent être installés séparément. Vous pouvez également utiliser les outils de développement d'IE8 pour faire fonctionner le navigateur en mode IE7.

22
Advertisement
22
22
2009-12-10 00:38:04 +0000

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

19
19
19
2009-12-10 01:31:08 +0000

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

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

Setting Expires = -1 (comme recommandé dans l'article du KB) devrait fonctionner pour la plupart des frameworks ; les navigateurs doivent traiter les formats de date non valides comme s'ils étaient antérieurs RFC 2616 ).

In . 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.

6
Advertisement
6
6
2009-12-09 23:58:04 +0000

L'onglet Réseau de la barre d'outils des développeurs web comporte un bouton permettant de vider 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 vraiment vider tout votre cache, mais comme je n'utilise pas IE pour la navigation générale, cela fonctionne pour moi.

4
4
4
2011-04-01 03:47:03 +0000

Cela se produit encore dans IE9. Étonnamment, la réponse est Ctrl-Maj-Bouton Rafraîchir

3
Advertisement
3
3
2009-12-10 00:14:40 +0000

Soit dit en passant, le problème peut également se poser pour les visiteurs de votre site web. J'ai vu l'idée suivante dans un livre d'AJAX…

Utilisez PHP pour ajouter un jeton aléatoire à l'URL actuelle afin que le navigateur soit amené à penser qu'il s'agit d'une page séparée.

2
2
2
2009-12-09 23:58:50 +0000

J'ai moi-même eu le même problème. Je crois que la seule façon de le faire est de vider le cache (Sécurité -> Effacer l'historique de navigation). Cochez seulement “Fichiers Internet temporaires”.

J'espère que cela vous aidera.

2
Advertisement
2
2
2010-11-17 15:36:29 +0000

Maintenez la touche alt ou ctrl enfoncée lorsque vous cliquez sur le bouton d'actualisation.

1
1
1
2009-12-10 01:49:44 +0000

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 selon la façon dont vous “rafraîchissez”. J'ai vu le comportement suivant :

F5 > se charge depuis le cache sans rafraîchissement, Alt+D, ENTER > vraiment rafraîchit en contournant le cache. (Alt+D peut être remplacé par un clic dans la barre d'adresse)

1
Advertisement
1
1
2012-08-22 18:35:56 +0000

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 comme le fait Chrome.

1
1
1
2010-08-12 02:58:55 +0000

Je suis d'accord que l'ajout d'un jeton aléatoire à l'url est la solution la plus fiable et une fois qu'elle est mise en œuvre, l'utilisateur n'a rien à faire.

En dehors de l'approche du jeton aléatoire, ce que j'ai tendance à toujours faire pour forcer un rechargement complet (demande) de la page et de tous ses fichiers dépendants, je place simplement mon curseur à la fin de l'url et j'appuie sur Entrée. Ça marche à chaque fois… et j'utilise IE 8.

Advertisement