通过appcache排除页面自我

时间:2013-01-28 08:56:54

标签: html5 browser-cache

我有一个appcache(使用NETWORK *)。现在我用<html manifest="/cache.appcache">访问我的页面。然后页面本身被缓存为所有图像。但我希望页面自我不被缓存。我怎样才能做到这一点?我认为NETWORK *可以解决问题。

此致 凯文

2 个答案:

答案 0 :(得分:2)

我已经尝试了iframe解决方案,并发现它已成熟但有错误。大多数浏览器都会缓存iframe所在页面无法获取的数据。

而是通过AJAX加载页面的内容。基本上有一个空白的html页面,其中包含清单和javascript,它从服务器中提取并添加其内容。这样,只缓存空白html,并始终从服务器更新内容。

将页面转换为此方法可能非常困难,但它可以正常工作。确保适当的javascript在正确的时间运行,可能需要一些解决方案。移动从缓存拉到新的ajax方法时不会被调用的服务器代码。

注意:如果条件在查询字符串中,则不需要从服务器提取条件内容,不同的查询字符串构成单独的缓存

答案 1 :(得分:1)

appcache清单总是缓存母版页。 如果您使用Chrome,请在此处检查您网页的缓存文件:chrome:// appcache-internals

解决方法可能是在页面的某处放置一个隐藏的iframe,其中包含用于缓存脱机内容的appcache文件。 (在此处查看“防止应用程序缓存存储带有iframe的主人”:http://labs.ft.com/2012/11/using-an-iframe-to-stop-app-cache-storing-masters/

更好的解决方案是编写页面以在打开服务器时从服务器获取新内容 - 如果无法访问服务器,它可以提供HTML5本地存储中的最新已知内容。