如何使用JavaScript清除应用程序缓存(HTML5功能)?

SAH*_*bKA 5 firefox html5 application-cache

我们的Web应用程序使用应用程序缓存(缓存清单)以脱机模式还原HTML页面和资源.HTML页面将sessionID作为URI中的参数.因此,在每次注销和登录操作之后,新的HTML页面将保存到应用程序缓存中,因为sessionId已在URI中更改.使用应用程序几周后,一些浏览器开始工作较慢.应用程序缓存的大小(在FF 3.6+上测试)大约为200Mb!每次注销后我们都会清除浏览器的LocalStorage,但是如何从Application存储中清除资源?

Sto*_*ive 7

应用程序缓存占用大量空间的问题在于,每次都为用户代理提供不同的脱机Web应用程序.通过缓存清单文件的URI向用户代理标识脱机Web应用程序,包括查询字符串 - 而不是您可能认为的主文件的URI.

因此,通过在缓存清单URI中包含会话ID,您告诉浏览器每个会话都获得自己的全新应用程序,而不使用任何以前下载的应用程序(因此,永远无法清除它们).您每次都要安装不同的Web应用程序.

重新考虑如何构建应用程序,因为目前使用HTML5脱机缓存清单没有提供任何价值 - 只是导致过度下载.Web应用程序鼓励的体系结构是静态地为所有HTML提供服务,并通过AJAX获取需要会话的数据.当在经典的"动态生成包含服务器数据的HTML页面"范例中构建Web应用程序时,Web应用程序不起作用.