Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Prevent caching of pages in Internet Explorer 8

On my page in IE8, I have got some text which gets changed through an admin panel. For example: if the page contains the text 'hello world', after 5 minutes the text could be different depending upon if the admin has changed it.

The problem is with IE8 which caches the page and shows the same text again. If we clear the cache and refresh, the text is updated.

I am using <META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE"> tag to make refrain the browser from caching.

I have seen that if I select Internet optionsbrowsing history (settings) → every time I visit the web page, the problem is eliminated; but if it's set to automatic, the page's cached version is shown.

Is there a way I can force 'no-caching' even if the caching option in IE8 is set to automatic, by the end-user?

like image 265
samach Avatar asked Jun 18 '12 11:06

samach


3 Answers

You can force Internet Explorer not to cache your page using the following headers:

Expires: -1
Cache-Control: private, max-age=0

↪ See How to control web page caching, across all browsers?

like image 184
user2428118 Avatar answered Oct 13 '22 07:10

user2428118


The best way to disable cache is to use a variable with random unique value in your URLs.

For example if your page's URL is:

www.abc.com/hello.php

make it like:

www.abc.com/hello.php?randomVar=1SH232X-182N19-1929SK

You can use the current timestamp as the value of randomVar. This way, the page will not be cached.

like image 21
Adil Malik Avatar answered Oct 13 '22 08:10

Adil Malik


When you request the page by POST method instead of GET, you can be pretty sure it will be never cached. User1419007's answer is also correct.

like image 1
Václav Dajbych Avatar answered Oct 13 '22 06:10

Václav Dajbych