除缓存之外还有其他方法可以避免应用清单的第二个请求吗?

时间:2015-04-22 15:54:00

标签: javascript html5 offline application-cache

当页面离线时,浏览器将(掩盖细节)下载页面,其清单和资源,然后完成后它将重新请求清单(步骤24 here),如果得到的东西与它得到的第一个匹配,则缓存失败。

根据规范,浏览器应该在短暂延迟后安排另一次尝试" (步骤25)。可悲的是,据我所知,Chrome和Firefox都不是最后一部分;相反,他们只是无法缓存(或更新)页面而不会重试它。

因此,为了可靠地缓存/更新页面,我们需要确保清单的第二个副本是从前几天开始的第一个副本。

如果页面的数据已经有某种内置版本,你可以在清单中使用,很好,但如果没有,你的选择似乎是:

  1. 生成某种合成版本并在服务器上记住它,以便您可以为这两个请求返回相同的版本。

  2. 允许浏览器在其正常缓存中将清单缓存一小段时间(例如,最多两分钟);这样,浏览器的正常缓存就满足了它的第二个请求,因此总是逐字节的。当然,这意味着您无法在这两分钟内更新页面。

  3. 我没有在规范中看到任何内容,但有没有办法完全避免第二次清单加载,以避免任何一种选择?要告诉浏览器第一个清单的时间点是好的,我们不希望它在之后重新检查? (在我们的例子中,我们肯定知道世界在下载资源的过程中不会改变,所以第二次检查的原因并不适用于我们。)

0 个答案:

没有答案