解决方法
我遇到了由于缺乏对缓存清单中列出的文件的缓存行为的控制而导致的类似问题.事实证明,使用iFrame可以控制此过程.
策略是将主缓存清单中列出的数千个文件划分为单独的(以及更易于管理的缓存清单),然后创建大量虚拟HTML页面,每个页面都引用缓存清单.然后,对于每个虚拟HTML,您将链接到它的iFrame添加到主HTML文档中.您可以将iFrame放在一个不可见的div中,这将使该技巧对用户不可见.
加载每个iFrame时,它会检查其各自的缓存清单.如果该缓存清单中的任何文件发生更改,则iFrame将仅缓存其子文件组.您可以智能地将相关文件组合在一起,具体取决于您希望它们更改的程度.
更好的是,您可以在用户交互的任何时刻在主HTML上动态插入iFrame,并且只有在加载iFrame时,才会触发缓存进度.