html5 - 一旦HTML文档有清单( 缓存清单),如何删除它?

  显示原文与译文双语对照的内容
0 0

似乎一旦你有了一个清单条目,一个 la:

<html manifest="cache.manifest">

然后,页面( 缓存中的主条目) 将始终是缓存( 至少通过 Safari ),直到用户执行删除缓存的操作,即使稍后你从html标记删除清单属性并更新清单( 通过改变它里面的东西),使主条目随其他内容重新加载。

换句话说,如果你有:

  • index.html ( 已经定义清单)
  • file1.js ( 在清单中引用)
  • file2.js ( 在清单中引用)
  • cache.manifest ( 列出两个js文件)

--从 index.html 中删除清单条目并修改清单( 所以它被浏览器和所有的内容重新加载) 不会停止这里页面,就好像它仍然被完全缓存。 如果你在 index.html 上查看源代码,你将看不到清单,但是浏览器仍然只请求 cache.manifest 文件,除非文件的内容被更改,否则不会向用户显示任何文件的更改。

它看起来像一个非常引人注目的Bug,它在iOS上以及Safari的Mac版本上。 有人发现了重置页面并去掉缓存而无需用户干预的方法?

时间:原作者:

0 0

一个可能的解决方案:

  • 修改清单( 使它的重新加载)
  • 修改主文件( index.html ) 以引用一个non-existant清单,因此它得到一个 404

虽然不怎么优雅,但似乎可以工作。 主要的问题是你坚持这个 404 -generating假清单条目,直到每个人都曾经去过你的网站已经恢复和缓存清除。

应该有更好的方法。

原作者:
0 0

尝试简单地删除清单文件。 从mozzila文档中:

应用程序缓存也可以变得过时。 如果将清单从服务器上删除,浏览器将删除使用该清单的所有应用程序缓存,然后将"已经废弃"事件发送到应用程序缓存对象。 然后应用程序缓存的状态设置为已经过时。

这也在 Chrome 上为我工作。

原作者:
0 0

一个解决方案,如果你正在使用 IIS 7,则要删除你添加的用于启用缓存的。manifest或者。appcache文件类型的Mime类型。 当你想再次启用缓存时,你总是可以将它的添加回去。 这就是我用来修补我的。

原作者:
0 0

这可能是旧的,但希望对某人仍然有用。

在IIS属性中查看你的HTTP标头。 查看启用或者禁用内容过期。 可能是IIS仍在进行缓存。

原作者:
0 0

我们要做的是删除清单中的文件列表,这样它就不会被缓存。

为我们工作。

原作者:
...