IE Over-Caching Information : IE 4.5 for Mac (and 5.0 for Windows) holds on to pages too tightly--here's the only known workaround.
I'm a web developer over at Refinery (née Image Refinery Productions).
My office has mixed Mac and Windows users. We develop a fair amount of internal, web-based applications.
We're having troubles with IE 4.5 for mac caching (and caching hard) pages which shouldn't be cached.
As a test case, I made two small .asp files that spit out the current date and time, and which link to one another.
- Each file has
<META HTTP-EQUIV="pragma" CONTENT="no-cache">
<META HTTP-EQUIV="Expires" CONTENT="0">
in the header. - Each page has the ASP command "Response.Expires(0)" in it.
- The server (IIS4 on NT4) has been instructed to expire both pages immediately.
- I've set the Advanced Cache setting to Update Pages Always.
Each one of these commands should each, individually, tell IE that it should never use a cached version of the page. Yet after I visit each page once, using the links between them gives me a cached version of the time. I tried Touching the pages on the server (updating their modification date)--nothing changed. I *deleted* the files from the server. IEMac merrily went on showing them to me. I *shut down* the server. Still, IE let me bounce between them and see the old, cached versions.
Internet Explorer v4.5 for Macintosh has serious trouble with caching pages--if it sees the same URL as it has seen recently, it assumes that the file has not changed and shows you the cached version. It does this regardless of its internal setting of "Update Pages Always", regardless of META tags on the page which tell it not to cache the page, and regardless of HTTP headers returned by the server which tell it not to cache the page.
Of course, Refreshing the pages causes them to update...but this is not acceptable, since this is a problem in deployed solutions, not just during development. As an example, say you have a 2-page site which lets you look at information on employees. Page 1, (choosemployee.asp) lets you choose an employee to browse. Page 2, (employeeinfo.asp) shows you information for that employee. Someone using IE4.5 for the mac may go to page 1, choose Joe Smith, and then go to page 2, which shows Joe Smith's information. The user then returns to page 1 and chooses a different employee. Upon returning to page 2 (through an internal page which updates a Session variable noting which is the current employee), IE4.5 for the mac sees the same URL, does not check with the server, and displays the data for Joe Smith.
I've found that I can FORCE IEMac to not cache the pages by navigating around using post-method forms. But this obviously isn't a valid solution.
The only work-around we've found (and talking with people on the BareBones Software Web Authoring Mailing List, the only solution they too have found) is a gross one, where URLs to each page pass a random, changing parameter to the page with each request, e.g. prototypelist.asp?clientid=43&rnd=2355512314 prototypelist.asp?clientid=43&rnd=2314527721
As long as the url is unique, IEMac realizes that it may not know best, and checks with the server. This is mostly effective, except when there is static, framed navigation which cannot (except by requiring JavaScript) generate a random string each time an anchor is used.
All of my bug reports to Microsoft have gone unanswered, so I thought that (although I far prefer IE over NS for a large number of reasons) it would be wise to get the word out to Mac IT personnel that IE4.5 for Mac has this problem with caching pages.
Followup: according to user-supplied information on The Mac Resource Page, people have found that IE5 for Windows also suffers from these same problems, except that IE5Windows does honor the EXPIRES META tag when the content is set to 0.
| created 2000-Jan-10 | page modified 2000-Mar-25 |
![Phrogz [home]](/images-nav/phrogz.gif)