我发现了更多关于 FALLBACK 的有用信息:
经过一番试验,我尝试了各种方法,包括 FALLBACK: 中的文件是否应该出现在 CACHE 或 NETWORK 部分中。答案似乎是否定的。
例如... FALLBACK: sign-up-portrait.png offline-portrait-1.png sign-up-landscape.png offline-landscape-1.png
我最近在我的一个微型网站中指定了这一点。目的是在联机时显示 sign-up-png 文件,在脱机时显示脱机 png 文件。这很好用。特别是每行左侧的文件隐含地好像它们在网络部分中,该站点将始终尝试使它们在线。它们也不能添加到 NETWORK 部分,否则它似乎会覆盖 FALLBACK 中的内容。另外,令人高兴的是,右侧的文件隐含地添加到 CACHE: 部分中,因此即使一开始不使用它们,它们也会在首次加载时被缓存,而无需显式地将它们添加到 CACHE:尽管您可以将它们添加到那里如果你愿意,也可以。没什么区别。
对于此配置,查看网络服务器日志,我看到每次刷新页面时,apache 都会针对清单文件和该页面版本所需的注册 png 文件记录 304(有一个 CSS 媒体选择器根据页面大小确定哪个)。所以它总是正确地检查 sign-up-png 文件以及通常的清单检查,这正是我想要的。
为了彻底起见,我尝试查看根文件是否也需要位于 CACHE: 部分中。事实证明不是!如果您的顶级文件是 index.html 并且在其 html 标记中指定了清单文件,那么清单文件不需要在任何地方包含 index.html,它会被隐式缓存。
我很好奇应用程序缓存可以扩展多远。您可以包含链接到 iframe 或 iframe 中的其他 html 文件吗?还是这些都需要有自己独立的清单文件?有人愿意发表评论吗?
关于格式的旁注,不要犯我做的错误,即放入... NETWORK file1.js
缺少冒号会导致它完全崩溃,认为 NETWORK 本身就是一种资源。
它必须是......网络:file1.js