2

我有一个 appcache(带有 NETWORK *)。所以现在我访问我的页面<html manifest="/cache.appcache">。然后页面本身就像所有图像一样被缓存。但我希望页面自身不被缓存。我怎样才能做到这一点?我想NETWORK *会做的伎俩。

问候,凯文

4

2 回答 2

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 本地存储的最后一个已知内容。

于 2013-12-09T15:11:30.117 回答
1

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

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

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

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

于 2014-07-18T16:08:08.167 回答