在登录/注销场景中以编程方式清除HTML5应用程序缓存

在登录/注销场景中以编程方式清除HTML5应用程序缓存,html,application-cache,Html,Application Cache,HTML 5脱机逻辑封装在window.applicationCache对象中。但是,以编程方式清除缓存数据似乎是不可能的,例如,当用户从系统注销时。除了生成空的清单文件之外,还有其他方法可以清除HTML 5应用程序缓存吗?抛开HTML5应用程序缓存的细节不谈,以编程方式清除浏览器的缓存是不可能的(除了该浏览器的某些ActiveX控件之外),因此我怀疑您在这一点上可能是空的。也许你应该关注缓存控制元标记,并用你的空清单想法进一步测试?在Chrome上观察到了这一点,不确定这是否是标准方法,如果服

HTML 5脱机逻辑封装在window.applicationCache对象中。但是,以编程方式清除缓存数据似乎是不可能的,例如,当用户从系统注销时。除了生成空的清单文件之外,还有其他方法可以清除HTML 5应用程序缓存吗?

抛开HTML5应用程序缓存的细节不谈,以编程方式清除浏览器的缓存是不可能的(除了该浏览器的某些ActiveX控件之外),因此我怀疑您在这一点上可能是空的。也许你应该关注缓存控制元标记,并用你的空清单想法进一步测试?

在Chrome上观察到了这一点,不确定这是否是标准方法,如果服务器在清单文件请求时使用404响应,引发过时事件后,缓存将从浏览器中清除。

我认为最好的方法是更改到清单文件的链接。在本例中,我将把用户的会话ID附加到清单文件中。无论登录状态如何,每个用户都应该拥有会话,并且会话ID可能在登录/注销时发生更改(可能)


我还发现了这个答案:

同样重要的是,即使向浏览器显示空清单文件,也只会从缓存中删除“显式”条目。“主”条目(具有“manifest”属性的html文档)将保留。因此,为了清除缓存,只需要一个“公共”主html文档,所有其他页面都显式地列在清单文件中。这将完全删除缓存。尽管这是一种解决方法,但它似乎是官方的,如
所述,如果清单文件本身无法检索,缓存将被忽略,与之相关的所有缓存数据将被忽略
并非总是如此-MacOS上的Chrome 37.0.2062.124,当清单url返回403时,缓存仍然存在:|