我在我的网站上使用 HTML5 离线缓存已经有一段时间了,出于某些原因,我正在考虑将其关闭。令我惊讶的是,它不起作用。
这就是我实现 HTML5 离线缓存的方式。
在我的index.html
我给出清单文件的路径
<html manifest="app.manifest">
在 app.manifest 文件中,我列出了我希望浏览器缓存以供离线使用的所有 js/css/png 文件。每次部署更新时,我都会更新 app.manifest 文件,这会导致浏览器获取清单文件中列出的所有文件的最新版本。
为了关闭离线缓存,我将 index.html 的开始标记更改为
<html>
我对 app.manifest 文件进行了虚拟更改,以便浏览器(已经缓存了我的网站)将检测到更改并下载所有文件的最新版本(包括 index.html)。
我注意到的是,浏览器确实获得了所有文件的最新版本。我在没有清单声明的更新版本中看到了新<html>
标签,但是浏览器对未来更改的行为没有改变。即我现在希望浏览器在服务器上更改时立即获取新版本的 index.html 文件。然而,这不会发生。在我对清单文件进行任何更改之前,浏览器不会下载更新的 index.html。
<html>
因此,在我看来,浏览器已将 app.manifest 文件与我的网站 URL 永久关联,即使我没有在标签中提及它,它也不会删除它。
我已经在 Google Chrome 和 Firefox 上进行了测试,结果相同。我也尝试重新启动 Chrome,但它不会忘记我的网站曾经为它定义了 app.manifest。我还没有找到任何关于网络上离线缓存这方面的讨论。
更新:我设法通过清除所有浏览数据(通过转到设置)来摆脱 Chrome 中的行为。但这不是我可以告诉用户做的事情。