【发布时间】:2011-08-15 07:37:13
【问题描述】:
我们的 Web 应用程序使用应用程序缓存(缓存清单)以离线模式恢复 HTML 页面和资源。 HTML 页面将 sessionID 作为 URI 中的参数。因此,在每次注销和登录操作后,新的 HTML 页面都会保存到应用程序缓存中,因为 URI 中的 sessionId 已更改。在使用应用程序几周后,一些浏览器开始运行缓慢。应用程序缓存的大小(在 FF 3.6+ 上测试)约为 200Mb!每次登出后清除浏览器的LocalStorage,但是如何清除Application storage中的资源呢?
【问题讨论】:
-
您说“新的 HTML 页面已保存到应用程序缓存” - 这似乎不对?浏览器将应用程序缓存作为一个整体来处理,无法自动将页面添加到应用程序缓存中。你能澄清一下吗?
-
我使用缓存清单的后备部分的方式为:
mysite.com/?SID=123456&a=1 mysite.com/?SID=123456,因此,静态页面被下载并保存到缓存中。每次注销/登录都会生成新的 sessionId,从而导致存储新的静态页面。 -
应用程序缓存中的内容不应该在每个会话中都更改,如果要更改,存储它以供离线使用有什么意义?将静态内容放在应用程序缓存中,使用本地存储和 AJAX 加载会话特定数据,以便您可以通过 JavaScript 对其进行控制。
-
我理解你的观点,但我使用动态缓存清单文件,为了得到它,我在 中的清单文件的 URL 中添加了一个 sessionId 没有 sessionId无法从服务器获取资源和正确结果。因此,正如我所了解的,由于动态清单文件 URI 中的 sessionId,每次生成新会话后缓存的大小都会变大。
-
啊,你的问题……你每次都给用户一个不同的网络应用程序。
标签: firefox html application-cache