5

HTML5 应用程序缓存 API 要求浏览器重新加载清单文件的 CACHE 部分中声明的所有文件(当清单文件已更改并在 applicationCache API 上调用更新时)。

我的清单文件包含数千个条目。是否有任何技巧可以告诉浏览器只重新加载已更改的文件?

4

1 回答 1

4

由于缺乏对缓存清单中列出的文件的缓存行为的控制,我遇到了类似的问题。事实证明,您可以通过使用 iFrame 来控制此过程。

策略是将主缓存清单中列出的数千个文件分成单独的(并且更易于管理的缓存清单),然后创建许多虚拟 HTML 页面,每个页面都引用一个缓存清单。然后,对于每个虚拟 HTML,您将一个 iFrame 链接添加到您的主 HTML 文档中。您可以将 iFrame 放在一个不可见的 div 中,这将使该技巧对用户不可见。

当每个 iFrame 加载时,它会检查其单独的缓存清单。如果该缓存清单中的任何文件发生更改,则 iFrame 将仅缓存其文件子组。您可以智能地将相关文件组合在一起,具体取决于您希望它们发生多大的变化。

更好的是,您可以在用户交互的任何时候在主 HTML 上动态插入 iFrame,并且只有在加载 iFrame 时,才会触发缓存进度。

于 2012-12-02T03:12:08.467 回答