缓存清单:在离线时,用一个“你离线”页面替换所有页面?

时间:2011-08-31 20:53:10

标签: html5 caching offline cache-control browser-cache

我正在努力研究缓存清单是否可行。

我有一个大约5页的移动网络应用程序。它们都需要以有意义的方式连接工作。

我想优雅地处理用户离线的可能性。

那么,当用户离线时,是否可以使用cache-manifest将网站上的每个页面替换为另一个“仅脱机”页面?

我希望这是cache-manifest的FALLBACK部分所做的,但似乎没有。

1 个答案:

答案 0 :(得分:1)

确实有效,你的后备部分应如下所示:

FALLBACK:
/ offline.html

如果您从根目录中的页面引用该字符,那么您键入的任何随机字符串都将导致offline.html被加载,包括不存在的页面,服务器是否在线。

我猜你所看到的问题是任何引用该清单的页面总是缓存。因此,如果您从五个页面中的每个页面引用了清单文件,那么所有这些页面都将位于应用程序缓存中。

可能有效的一种方法(我没有尝试过):专门创建一个新页面以引用清单文件,并在用户首次访问时将其重定向到该文件。您可以在页面上放置一些内容,例如“初始化应用程序”。验证应用程序缓存是否已加载JavaScript,然后重定向回到它们来自的页面。