删除 HTML5 离线 AppCache

Posted

技术标签:

【中文标题】删除 HTML5 离线 AppCache【英文标题】:Removing HTML5 Offline AppCache 【发布时间】:2011-12-17 18:34:21 【问题描述】:

我有一个带有关联 appcache 清单的 html 文档。但现在我想暂时摆脱离线应用程序缓存。

如果我从 <html> 标记中删除清单的提及,已经具有缓存版本的浏览器将继续使用该缓存版本。

如果我更新 appcache 清单,那么无论如何,仍然有一个 appcache。

删除离线应用程序缓存最明智的方法是什么?我想我可以将清单更改为没有以下条目:

NETWORK:
*

那么它实际上不会缓存任何东西。

但肯定有办法完全摆脱 appcache 和清单文件,不是吗?

【问题讨论】:

Removing HTML5 Appcache Manifest, Permanently 的可能重复项 @KyleTrauberman 这个问题是在 2011 年 10 月 29 日提出的。在提出这个问题之后,您建议的重复项是在今年(2012 年)提出的。 有趣。我没有选择它,它是新的测试版审查系统自动建议的。看起来很不错,所以我投了票。 【参考方案1】:

您只需从服务器中删除 appcache 清单。如果浏览器无法访问清单文件,它将停止缓存您的应用并删除所有缓存的数据。

来自两个网站的一些有用信息:

如果清单文件本身无法检索,缓存将被忽略 并且所有与之关联的缓存数据都将被忽略。

http://appcache.offline.technology/

应用程序缓存也可能过时。如果清单是 从服务器中删除,浏览器会删除所有应用程序缓存 使用该清单,然后向 应用程序缓存对象。然后设置应用程序缓存的状态 过时了。

https://developer.mozilla.org/en/Offline_resources_in_Firefox

【讨论】:

删除后可以用这行js测试一下;当已删除清单中的 404 返回时,这将被触发:appCache.addEventListener('obsolete', handleCacheEvent, false); 也许你能帮助我? ***.com/questions/9287044/… 这对我来说在 Firefox 中不起作用。 Firefox 在收到 404 时继续使用缓存的 appcache。解决方法在这里:***.com/a/31083156/119975 这个答案不正确,正确的解决方法在这里详述:***.com/a/62587655/806876【参考方案2】:

对于遇到此问题并且已删除 appcache 清单、删除浏览器缓存并从服务器中删除清单以及 HTML 中对其的引用的任何人:如果这仍然没有导致您的 HTML 文档加载在 Google Chrome 中更新版本,您可以在浏览器中转到 chrome://appcache-internals/,然后单击要删除的清单旁边的 REMOVE。

【讨论】:

我能想象到的唯一情况是,如果您没有将清单的常规 HTTP 缓存过期设置为立即过期。另外,也许是次要的,但这个答案并不是对所问问题的真正答案。这是对“如何从浏览器中删除它”的回答,而不是如何为访问我网站的每个人删除它。不过,对于 Chrome 用户来说,这些信息非常有用!【参考方案3】:

在现代 Firefox 中,您可以使用 Edit Preferences Advanced Network 操作离线缓存。

现在在 windows 中 (v27.01) Tools Options Advanced Network

【讨论】:

【参考方案4】:

手动删除应用缓存:仅适用于 Chrome

在您的 chrome 浏览器中输入以下 URL:chrome://appcache-internals/

在那里,您将看到存储中的每个应用程序缓存的列表,并且可以删除其中的任何一个。

Reference

【讨论】:

以上是关于删除 HTML5 离线 AppCache的主要内容,如果未能解决你的问题,请参考以下文章

HTML5 离线应用程序 接口实现离线数据缓存精心收藏

HTML5 使用application cache 接口实现离线数据缓存

HTML5 离线缓存

HTML5的应用缓存

HTML5-应用程序缓存(Application Cache)

HTML5的应用缓存