On Thu, Feb 16, 2006 at 04:22:46PM +0000, James MacLeod wrote: > >>> Is there any trick to get IE 5.2 Mac to reload *all* files short of > >>> clearing it's cache? > > As well as setting the cache preferences to 0/always refresh, I've > gotten into the habit of holding down Shift + Command + Alt when > reloading. Not official, bu seems to do the trick for CSS files, at > least.
Unfortunately, that doesn't work on the version of IE I'm using. No command combination seems to change the behavior of the way IE "reloads". Of course, this is a caching issue. If the server tells the browser that's it's ok to cache a file for some amount of time then, well, it's well within its "rights" to not fetch that again until that time has expired. Makes testing a pain, unless you can control those headers or you use something nice like Firefox where you can force it to reload. That was my solution -- I just set my server to send no-cache headers on all my files while testing. So, Firefox doesn't re-request a page that is cached unless you hit reload. Reload in Firefox does force a reload for the page you are viewing, but for loaded pages (e.g. css files and images) Firefox sends a request with the If-Modified-Since header. Here's an example for http://bumby:3000/index.html. *All* files returned by the server say it's ok to cache the file for a day. So after the initial page load just going back to http://bumby:3000/index.html does NOT make another request to the server. Firefox just displays what's in it's cache just like it should. Hitting the reload button (or shift-R or F5) results in these requests: http://bumby:3000/index.html -- 200 http://bumby:3000/site/css/common.css -- 304 http://bumby:3000/site/css/style.css -- 304 http://bumby:3000/site/css/banner.css -- 304 http://bumby:3000/images/busy.gif -- 304 http://bumby:3000/site/css/images/ifp_logo_sm.gif -- 304 http://bumby:3000/site/css/images/input_bg.gif -- 304 http://bumby:3000/site/css/images/img_navarrowblue.gif -- 304 http://bumby:3000/site/css/images/div_curve.gif -- 304 http://bumby:3000/site/css/images/right_arror_blue.gif -- 304 So reload always reloads the current page, but not the other pages. Of course, if any of those had changed then the server would return those instead returning the 304. But hitting the reload button while holding down the shift button forces reload of all files: http://bumby:3000/index.html -- 200 http://bumby:3000/site/css/common.css -- 200 http://bumby:3000/site/css/style.css -- 200 http://bumby:3000/site/css/banner.css -- 200 http://bumby:3000/images/busy.gif -- 200 http://bumby:3000/site/css/images/ifp_logo_sm.gif -- 200 http://bumby:3000/site/css/images/input_bg.gif -- 200 http://bumby:3000/site/css/images/img_navarrowblue.gif -- 200 http://bumby:3000/site/css/images/div_curve.gif -- 200 http://bumby:3000/site/css/images/right_arror_blue.gif -- 200 Again, Shift-reload isn't really needed since any changes to the loaded files would be noticed and return 200 instead of 304. So if you update a css file then reload should be fine. Note that if that index.html page was set to *not* cache (say it's dynamic content) then Firefox will always fetch that page when going to that URL, but still respects the other file's cache headers. Just like you would expect. Now, so how lame is IE 5.2 on my Tiger iBook? (As if I have to ask!) IE has a number of cache settings. None make very much sense. With "Always" set going back to a URL makes these requests: http://bumby:3000/about.html -- 200 http://bumby:3000/site/css/common.css -- 304 http://bumby:3000/site/css/style.css -- 304 http://bumby:3000/site/css/banner.css -- 304 So "Aways" would seem to the best bet, for at least the CSS files. With "Never" set it does this instead: http://bumby:3000/about.html -- 200 Note that about.html is suppose to be cached: $ HEAD http://bumby:3000/about.html 200 OK Cache-Control: max-age=86400 Connection: close Date: Thu, 16 Feb 2006 18:26:35 GMT Content-Length: 7227 Content-Type: text/html; charset=utf-8 Expires: Fri, 17 Feb 2006 18:26:35 GMT Last-Modified: Thu, 12 Jan 2006 19:41:23 GMT Client-Date: Thu, 16 Feb 2006 18:26:35 GMT Client-Peer: 192.168.1.2:3000 Client-Response-Num: 1 So I wonder why IE is fetching that page again? Hitting "Refresh" in "Never" mode does this: http://bumby:3000/about.html -- 200 http://bumby:3000/images/busy.gif -- 304 Why only busy.gif? It's the only image on the page that is not loaded via css. NO combination of shift/option/ctr keys will make IE reload the CSS files in Never mode. Note above that IE never checks to see if images loaded via css have changed. Even clicking "Empty Now" to empty the cache doesn't force it to reload or even see if those images have changed. Of course, anyone using IE on OS X gets what they deserve. ;) -- Bill Moseley [EMAIL PROTECTED] ______________________________________________________________________ css-discuss [EMAIL PROTECTED] http://www.css-discuss.org/mailman/listinfo/css-d IE7b2 testing hub -- http://css-discuss.incutio.com/?page=IE7 List wiki/FAQ -- http://css-discuss.incutio.com/ Supported by evolt.org -- http://www.evolt.org/help_support_evolt/
