如何关闭HTML5脱机缓存

Jay*_*esh 3 html5 offline-caching offline-browsing

我一直在我的网站上使用HTML5离线缓存一段时间,出于某些原因我正在考虑将其关闭.令我惊讶的是它不起作用.

这就是我实现HTML5离线缓存的方法.

在我的index.html我给清单文件的路径

<html manifest="app.manifest">
Run Code Online (Sandbox Code Playgroud)

在app.manifest文件中,我列出了我希望由浏览器缓存以供离线使用的所有js/css/png文件.每次部署更新时,我都会更新app.manifest文件,这会导致浏览器获取清单文件中列出的所有文件的最新版本.

为了关闭离线缓存,我将index.html的开始标记更改为

<html>
Run Code Online (Sandbox Code Playgroud)

我对app.manifest文件进行了虚拟更改,以便浏览器(已经缓存我的网站)将检测到更改并下载所有文件的最新版本(包括index.html).

我注意到的是,浏览器确实获得了所有文件的最新版本.我<html>在没有manifest声明的更新版本中看到了新标记,但是浏览器对将来更改的行为不会改变.即我现在希望浏览器在服务器上更改时立即获取新版本的index.html文件.然而,这不会发生.在我对清单文件进行任何更改之前,浏览器不会下载更新的index.html.

因此,在我看来,浏览器已将app.manifest文件永久地与我的网站URL相关联,即使我没有在<html>标签中提及它也不会将其删除.

我已经在Google Chrome和Firefox上测试了这个,结果相同.我也尝试重新启动Chrome,但它不会忘记我的网站曾为其定义了app.manifest.我还没有在网上找到关于离线缓存这方面的任何讨论.

更新:我设法通过清除所有浏览数据(通过转到设置)摆脱Chrome中的行为.但这不是我可以告诉用户做的事情.

phi*_*hag 8

使清单 URL返回404以指示您不再需要脱机Web应用程序.根据HTML5§5.6.4的第5步,这将缓存标记为已过时,并将其删除.

您也可以通过转到手动删除Chrome中的离线Web应用程序about:appcache-internals.