如何使用动态缓存清单处理浏览器刷新

时间:2013-02-07 12:16:04

标签: html5 offline-caching cache-manifest offlineapps

这是我的情景:

一个网站有一个索引页面和许多内容页面(为了参数,这些页面被称为page1到page100)都指向同一个缓存清单URL。

索引页面列出了所有内容页面,并允许用户选择他想要离线查看的内容页面(为了进行混淆,我们假设他选择了第1页,第2页和第3页)。然后,他单击“下载”按钮,该按钮又回发相同的索引页面,但这次缓存清单是动态生成的,并将所选页面包含为显式,以便将它们全部下载到脱机缓存中。然后,他可以离线查看所有页面,到目前为止一切顺利!

现在让我们说在他离线之前他进入page2并点击浏览器刷新按钮。这将导致重新获取缓存清单。此时缓存清单没有上下文,因此它无法为第1页或第3页包含任何显式条目。因此,他现在将page2作为主条目(也可能是显式的)但是已从中删除了1和3。离线缓存。

有人能想出一个明智的方法吗?我想知道每个页面都有一个单独的缓存清单URL但是感觉不对。

1 个答案:

答案 0 :(得分:0)

不要在其他页面上包含manifest属性吗?也许甚至不把它包含在第一页上,除非用户刚刚提交它以便你知道它必须包含什么?

将用户的选择存储在会话变量中,以便始终生成正确的清单?