Once an HTML document has a manifest (cache.manifest), how can you remove it?

Posted by Michael F on Stack Overflow See other posts from Stack Overflow or by Michael F
Published on 2010-12-27T22:32:45Z Indexed on 2010/12/28 18:53 UTC
Read the original article Hit count: 205

Filed under:
|
|

It seems that once you have a manifest entry, a la:

<html manifest="cache.manifest">

Then that page (the master entry in the cache) will always be cached (at least by Safari) until the user does something to remove the cache, even if you later remove the manifest attribute from the html tag and update the manifest (by changing something within it), forcing the master entry to be reloaded along with everything else.

In other words, if you have:

  • index.html (with manifest defined)
  • file1.js (referenced in manifest)
  • file2.js (referenced in manifest)
  • cache.manifest (lists the two js files)

-- removing the manifest entry from index.html and modifying the manifest (so it gets expired by the browser and all content reloaded) will not stop this page from behaving as if it's still fully cached. If you view source on index.html you won't see the manifest listed anymore, but the browser will still request only the cache.manifest file, and unless that file's content is changed, no other changes to any files will be shown to the user.

It seems like a pretty glaring bug, and it's present on iOS as well as Mac versions of Safari. Has anyone found a way of resetting the page and getting rid of the cache without requiring user intervention?

© Stack Overflow or respective owner

Related posts about html5

Related posts about safari