下面是我的场景:
一个网站有一个索引页面和许多内容页面(为了论证起见,这些页面被称为page1到page100),它们都指向同一个缓存清单URL。
索引页面列出了所有内容页面,并允许用户选择要脱机查看的页面(为了便于论证,假设他选择了页面1、2和3)。然后,他单击"下载"按钮,该按钮反过来发布相同的索引页面,但这一次缓存清单是动态生成的,并将所选页面明确地包括在内,以便将它们全部下载到脱机缓存中。然后他可以离线查看所有页面,到目前为止一切都很好!
现在假设在他离线之前,他进入第2页并点击浏览器刷新按钮。这将导致重新获取缓存清单。在这一点上,缓存清单没有上下文,因此它不可能包括页面1或3的任何显式条目。因此,他现在将page2作为主条目(也可能是显式的),但1和3已从脱机缓存中删除。
有人能想出一个合理的方法来解决这个问题吗?我想知道是否为每个页面都有一个单独的缓存清单URL,但这感觉不对。
是否在其他页面上包含manifest属性?也许甚至不把它包括在第一页上,除非用户刚刚提交了它,这样你就知道它必须包含什么了?
将用户的选择存储在会话变量中,以便始终生成正确的清单?