Question Comment forcer Internet Explorer (IE) à recharger réellement la page?


Lors de l'utilisation d'Internet Explorer 8 pour tester mon application Web, je trouve souvent qu'il ne recharge pas la page, donc je ne vois pas mes modifications. Cela a entraîné beaucoup de temps perdu et de frustration en se demandant pourquoi mon correctif "ne fonctionnait pas" - alors que le navigateur ne chargeait jamais la version fixe.

J'ai essayé le bouton Refresh. J'ai essayé F5, Contrôle-F5, Contrôle-R, Contrôle-Décalage-R, en portant Contrôle tout en cliquant sur le bouton Actualiser, tout ce à quoi je pouvais 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 fous de ce que vous pensez avoir mis en cache, je veux recharger la page - non vraiment, je le dire cette fois, honnête à Dieu, je veux que tu réellement aller sur le serveur et télécharger à nouveau"?


145
2017-12-09 23:52


origine


Utilisez une fenêtre de navigation privée, peut-être? - Josh Lee
Est-il possible que votre serveur Web serve l'ancienne page (via le cache) au lieu de la nouvelle version? Peu importe combien de fois vous rechargez dans ce cas. - Michael Todd
Michael, non, j'ai vérifié dans Fiddler qu'IE ne recevait pas le contenu de la page du serveur. - EMP
Control + F5 passe le cache, il est étrange s'il ne le fait pas .... - Tom Wijsman
Meilleure formulation d'une question que j'ai rencontrée jusqu'à présent sur StackExchange! - user785529


Réponses:


  1. Sélectionner Outils >> Options Internet.
  2. Clique le Paramètres bouton dans Historique de navigation.
  3. Sélectionnez le Chaque fois que je visite la page Web bouton radio.
  4. Cliquez sur D'accord pour fermer la boîte de dialogue Paramètres.
  5. Cliquez sur D'accord pour fermer la boîte de dialogue Options Internet.

119
2017-12-09 23:57



Si c'est ce que vous avez fait, marquez-le comme la réponse - Earlz
Cela peut nuire aux performances générales de navigation, mais uniquement si vous naviguez avec IE ... - Joel Mueller
Ev: le côté utilisateur est généralement résolu en modifiant les URL de tous les scripts et feuilles de style chaque fois que vous touchez le code, généralement en ajoutant un ?version-number suffixe de chaîne de requête. - bobince
"Chaque fois que je visite la page Web" ne fait probablement pas ce que vous pensez. Voir fiddler2.com/redir/?id=httpperf - EricLaw
Je suis d'accord avec @EricLaw, si vous utilisez Fiddler, vous verrez que les fichiers associés à la page ne sont parfois pas rechargés même lorsque "Chaque fois que je visite la page Web" est défini. Utilisez le menu de la barre d'outils IE: Cache> Toujours actualiser à partir du serveur ou le bouton Effacer le cache dans Fiddler. - Phillip Ngan


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 de la page, puis toujours actualiser à partir du serveur pour contourner le cache.

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

Vous pouvez simplement effacer votre cache ici, si c'est l'action souhaitée. L'option de rafraîchissement permanent n'est pas une option globale et n'empêche 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.


41
2017-07-08 18:30



+1 pour résoudre ce problème sans utiliser une option globale. - Marcus Riemer
Semblable à ici, cela ne rafraîchit pas toujours tout le contenu. Et je ne sais pas non plus que ce rechargement soit correct entre les URL - chaque fenêtre semble avoir son propre F12 par moments. Ce est une façon plus complète de faire si, si vous avez accès au javascript inclure. - ruffin
Comment faites-vous cela dans IE 11? Il n'y a pas d'option de cache que je puisse trouver. - David Thielen
Dans IE 11, cette option est sous F12 -> Réseau -> 3ème icône de gauche. - Den


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


22
2017-12-10 00:38



Non, ce n'est pas le cas. Je sais qu'il ignore parfois le cache, mais pas tout le temps. - EMP
Ctrl + f5 recharge toujours la page à partir du serveur. Ce qu'il ne fait pas nécessairement, c'est de recharger les fichiers supplémentaires que la page référence
Assez juste - mais j'en ai besoin pour recharger TOUT. - EMP
CTRL + F5 devrait effectuer un rafraîchissement complet de la page et de toutes ses ressources. Les appels effectués via XMLHTTPRequest ultérieurement peuvent être mis en cache (si vous ne souhaitez pas qu'ils soient mis en cache, envoyez les en-têtes no-cache appropriés). Le seul inconvénient est que si la page en question est XML, elle est réellement chargée via MSXML, et que DocHost ne respecte pas CTRL + Refresh correctement. - EricLaw
ctrl + f5 ne recharge pas toujours tout depuis le serveur. Dans mes tests, javascript contenu dans le fichier html ne se recharge pas après avoir appuyé sur ctrl-f5 même si la page a été modifiée. - rcarver


IE souhaite vivement mettre en cache les pages, même si vous ne le dites pas via les 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>

Réglage Expires = -1 (comme recommandé dans l'article de la base de connaissances) devrait fonctionner pour la plupart des frameworks; les navigateurs doivent traiter les formats de date invalides comme étant dans le passé (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.


14
2017-12-10 01:31



Faux. IE6 + respecte entièrement tous les en-têtes interdisant le cache. fiddler2.com/redir/?id=httpperf - EricLaw
C'est très bien, mais cela n'aide pas la question. - Matthias Urlichs


La barre d'outils du 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 effacer l'intégralité de votre cache, mais comme je n'utilise pas IE pour la navigation générale, cela fonctionne pour moi.


6
2017-12-09 23:58





Cela se produit toujours dans IE9. Étonnamment, la réponse est Ctrl-DécalageBouton Actualiser


4
2018-04-01 03:47



Est-ce que cela fonctionne différemment du bouton Ctrl-Refresh? - Jon Onstott


Incidemment, le problème pourrait également exister pour les internautes. J'ai vu l'idée suivante dans un livre AJAX ...

Utilisez PHP pour ajouter un jeton aléatoire à l'URL actuelle afin que le navigateur pense qu'il s'agit d'une page distincte.


3
2017-12-10 00:14



Rend les URL moche, cependant. - LawrenceC


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). Ne cochez que "Fichiers Internet temporaires".

J'espère que cela t'aides.


2
2017-12-09 23:58





Maintenez soit le alt ou ctrl touchez lorsque vous cliquez sur le bouton Actualiser.


2
2017-11-17 15:36





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

Mis à part l'approche par jeton aléatoire que j'ai tendance à toujours faire pour forcer un rechargement complet (requête) de la page et de tous ses fichiers dépendants, je place mon curseur à la fin de l'URL et appuie sur Entrée. Fonctionne à chaque fois ... et j'utilise IE 8.


1
2017-08-12 02:58