Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

When using Internet Explorer 8 to test my web application I often find it doesn't reload the page, so I don't see my changes. This has resulted in a lot of wasted time and frustration wondering why my fix "didn't work" - when in fact the browser never loaded the fixed version.

I've tried the Refresh button. I've tried F5, Control-F5, Control-R, Control-Shift-R, holding Control while clicking the Refresh button, everything I could think of - it doesn't actually load the new contents from the server. I've confirmed this with Fiddler.

How do I tell IE "I don't care what you think you have cached, I want to reload the page - no really, I mean it this time, honest-to-God, I want you to actually go to the server and download everything again"?

share|improve this question

migrated from stackoverflow.com Dec 10 '09 at 3:28

This question came from our site for professional and enthusiast programmers.

2  
Use a private browsing window, maybe? –  Josh Lee Dec 9 '09 at 23:54
3  
Is it possible that your web server is serving the old page (via cache) instead of the new version? Doesn't matter how many times you reload in that case. –  Michael Todd Dec 9 '09 at 23:56
1  
Michael, no, I verified in Fiddler that IE is not getting the page contents from the server. –  EMP Dec 10 '09 at 0:06
    
Control+F5 goes past the Cache, it's odd if it doesn't.... –  Tom Wijsman Jul 14 '10 at 19:41

12 Answers 12

up vote 85 down vote accepted
  1. Select Tools >> Internet Options.
  2. Click the Settings button in Browsing History.
  3. Select the Every time I visit the webpage radio button.
  4. Click OK to close the Settings dialog.
  5. Click OK to close the Internet Options dialog.
share|improve this answer
3  
If this is what you did, mark it as the answer –  Earlz Dec 10 '09 at 0:15
19  
It may hurt general browsing performance, but only if you do your general browsing with IE... –  Joel Mueller Dec 10 '09 at 1:07
3  
Ev: The user-facing side of this is usually fixed by changing the URLs for all scripts and stylesheets every time you touch the code, typically by adding a ?version-number query string suffix. –  bobince Dec 10 '09 at 1:53
2  
"Every time I visit the webpage" likely doesn't do what you think it does. See fiddler2.com/redir/?id=httpperf –  EricLaw Jan 5 '10 at 20:33
5  
I agree with @EricLaw, if you use Fiddler you will see that files associated with the page are sometimes not reloaded even when "Every time I visit the webpage" is set. Use the IE toolbar menu: Cache > Always refresh from server, or the Clear Cache button in Fiddler. –  Phillip Ngan Mar 4 '10 at 17:32

Since it's stated that IE8 is the browser, you can press F12 to open the development tools and select the Cache menu at the top and then always refresh from server to bypass cache.

In short, Press F12. Click Cache -> Always Refresh from Server

You can simply clear your cache here as well, if that is the desired action. The always refresh option is not a global option and will not hinder overall performance in IE.

IE7 also has development tools, but they must be installed separately. You can also use the IE8 dev tools to run the browser in IE7 mode.

share|improve this answer
    
+1 for solving this without using a global option. –  Marcus Riemer Dec 12 '12 at 13:48
    
Similar to here, that still doesn't always refresh all content. And I don't know that that reload is good across URLs either -- each window seems to have its own F12 at times. This is a more thorough way to do if, iff you have access to the javascript include. –  ruffin Feb 4 '13 at 15:15
    
How do you do this in IE 11? There's no cache option I can find. –  David Thielen Jun 17 at 14:33

Ctrl+F5 in IE reloads the page ignoring the cache

share|improve this answer
17  
No, it doesn't. I know it ignores the cache some of the time, but not all the time. –  EMP Dec 10 '09 at 0:56
12  
Ctrl+f5 always reloads the page from the server. What it doesn't necessarily do is reload the extra files that page references –  Chris Dec 10 '09 at 1:53
1  
Fair enough - but I need it to reload EVERYTHING. –  EMP Dec 10 '09 at 5:55
1  
CTRL+F5 should perform a full refresh of the page and all of its resources. Calls made via XMLHTTPRequest later might be cached (if you don't want them cached, send appropriate no-cache headers). The one caveat is that if the page in question is XML, it's really being loaded via MSXML, and that DocHost does NOT respect CTRL+Refresh properly. –  EricLaw Jan 5 '10 at 20:32
2  
ctrl+f5 does not always reload everything from the server. In my tests javascript contained in the html file do not reload after pressing ctrl-f5 even though the page has changed. –  rcarver Dec 2 '11 at 13:15

IE is very eager to cache pages, even when you tell it not to via cache headers. Microsoft KB 234067 explains the requisite incantations. In short, you need to deliver the following headers.

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

Setting Expires = -1 (as recommended in the KB article) should work for most frameworks; browsers are required to treat invalid date formats as being in the past (RFC 2616).

In .NET, you can do it on a page-by-page granularity by using this set of methods prior to calling the web page:

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();

see: http://www.localwisdom.com/blog/2012/10/force-a-page-refresh-on-a-asp-net-mvc-website/ Works well for MVC3.0.

share|improve this answer
1  
Untrue. IE6+ fully respects all cache-prohibiting headers. fiddler2.com/redir/?id=httpperf –  EricLaw Jan 5 '10 at 20:31

The web developer toolbar has a button to easily clear the cache. I usually use that in the case you describe.

It isn't ideal, since you may not really want to clear your entire cache, but since I don't use IE for general browsing, it works for me.

share|improve this answer

Incidentally, the problem will possibly exist for your website viewers as well. I saw the following idea in an AJAX book...

Use PHP to add a random token to the current URL so that the browser is tricked into thinking it's a separate page.

share|improve this answer
    
Makes URLs ugly, though. –  ultrasawblade Aug 22 '12 at 18:38

This still happens in IE9. Amazingly, the answer is Ctrl-Shift-Refresh button

share|improve this answer
    
Does that function differently than Ctrl-Refresh button? –  Jon Apr 10 '13 at 22:14

Hold down either the alt or ctrl key as you click refresh button.

share|improve this answer

I've had the same problem myself. I believe the only way to do it is to clear the cache (Safety -> Delete Browsing History). Only check "Temporary Internet Files".

Hope this helps.

share|improve this answer

I agree that adding a random token to the url is the most reliable solution and once it's implemented the user doesn't have to do anything.

Aside from the random token approach what I tend to always do to force a complete reload (request) of the page and all of its dependant files I just place my cursor at the end of the url and press Enter. Works every time... and I use IE 8.

share|improve this answer

F12 -> CTRL+R is slightly faster for IE9+. As people have mentioned, IE doesn't clear the cache very intelligently like Chrome does.

share|improve this answer

I know this may seem a bit odd... but one thing I've noticed lately, is that you do sometimes get different results depending on HOW you "refresh". I've seen the following behaviour:

F5 > loads from cache without refresh,
Alt+D, ENTER > really refreshes bypassing the cache.
(Alt+D can be replaced with clicking in the address bar)

share|improve this answer

protected by Community Oct 5 '11 at 0:52

Thank you for your interest in this question. Because it has attracted low-quality answers, posting an answer now requires 10 reputation on this site.

Would you like to answer one of these unanswered questions instead?

Not the answer you're looking for? Browse other questions tagged or ask your own question.