永久删除HTML5 Appcache Manifest

时间:2012-01-11 06:51:47

标签: html5 html5-appcache

我在一个网站上设置了一个应用程序缓存,不久后我意识到它的方式更加激进。我想删除它。永久

我已经读过,使用正确的MIMETYPE传递已更改的清单文件,完全为空,将删除缓存。 编辑:见下文。莫里斯的回答是唯一一致的解决方案。

这是最快,最有效的解决方案吗?还有更好的方法吗?

如果您可以在回答之前指定是否实际使用过此功能,我真的很感激 - 模糊的文档和在测试期间未显示的古怪是让我进入这种情况的原因。

4 个答案:

答案 0 :(得分:17)

诀窍是首先将HTML页面中的清单URL更改为无效,以便浏览器在加载时收到404。确保也更改原始清单,否则永远不会下载新的HTML页面。浏览器无法下载新的清单URL后,您可以从HTML页面中完全删除清单设置。

有点古怪,但这似乎是删除现有清单引用的唯一可靠方法。

答案 1 :(得分:7)

截至2015年6月25日我发现返回404将无法清除Firefox的现有appcache,并且返回空白的appcache将无法清除Chrome的现有appcache。返回以下appcache似乎适用于IE,Chrome,Safari和Firefox,虽然目前尚不清楚是什么机制可以实现对index.html的“隐式”缓存的禁用。

NETWORK:
*

CACHE:
FALLBACK:

答案 2 :(得分:2)

我遇到了类似的问题,我需要在更新失败后重置appcache(即强制完全删除appcache以便可以从头开始重新构建)。

基于Maurice的回答,我向用户显示一个通常隐藏的链接,该链接打开一个非缓存页面,该页面只写一个cookie并将用户返回到上一个视图。此cookie告诉服务器在下次请求appcache时返回404,然后用户进入正常登录过程。当应用程序下次成功运行时,它将清除cookie并缓存恢复正常。

以这种方式使用cookie可以解决视图的主版本卡在appcache中的问题,这使得很难将明细网址注入manifest =“”,即清单网址保持不变,但服务器响应除非另有说明,否则请使用404。

答案 3 :(得分:2)

如果您只想将它​​从您身边移除,您可以从浏览器中执行此操作。我只记得如何在Chrome中执行此操作。转到chrome:// appcache-internals /&删除所需的文件。你也可以清除缓存和饼干&应该工作。不过,我只是在Chrome中进行测试。

如果你想为所有观众删除它,我知道无法检测他们是否有一个旧的缓存版本,但我知道保持属性的虚假链接,如Maurice建议,将是唯一的方式我知道;不过,我确信还有另一种方式,最有可能是使用jQuery。