Webkit .appcache文件缓存动态页面



我的移动web应用程序的主页面是一个.jsp页面。我的应用程序需要登录(Google app Engine),所以当用户没有登录时有一个登录按钮,当用户登录时有一个注销按钮,所有这些都由.jsp页面上的代码处理。

我在页面上加载了很多JS代码,所以我使用了一个. appache文件来缓存它。不幸的是,即使我将.jsp页面添加到Network区域,页面仍以一种奇怪的方式被缓存,忽略了来自服务器的内容服务器。这意味着当用户注销时,我的注销按钮会显示,反之亦然。

我尝试添加无缓存指令作为元标记,但它们都被忽略了。

想法?

根据对HTML5的深入研究,引用清单的页面会自动包含在清单中。

http://diveintohtml5.ep.io/offline.html

问:我需要在我的缓存清单中列出我的HTML页面吗?A:是也不是。如果您的整个web应用程序包含在一个页面中,只需确保该页面使用manifest属性指向缓存清单。当你导航到一个带有manifest属性的HTML页面时,页面本身被认为是web应用程序的一部分,所以你不需要在manifest文件本身中列出它。然而,如果你的web应用程序跨越多个页面,你应该在manifest文件中列出所有的HTML页面,否则浏览器将不知道还有其他HTML页面需要下载和缓存。

我有一个类似的问题,我想我最终会通过AJAX加载页面的内容。

appCache中的缓存是一个两阶段的过程:首先检查缓存清单(在这种情况下,当页面正在加载时),然后如果它的内容发生了变化,则重新加载该内容。但是,在您的示例中,到那时,陈旧的页面已经加载并显示。

最简单的修复方法是从appCache中明确地排除页面(但不是.js),这样只有js被缓存,而不是页面。听起来您可能已经弄清楚了,因为您正试图通过将页面放在网络区域来做到这一点。检查排除是否正确,因为这听起来像是问题所在,并且在该页上正确设置了html缓存属性。

最新更新