在使用 Firebase 的 Polymer 应用程序中,何时使用预缓存服务工作者和 h2 推送有何不同?

When to use and how different are pre-cache service worker and h2 push in a Polymer app using Firebase?

所以有两件事我很困惑。我正在使用 Firebase 开发 Polymer 应用程序。我正在使用预缓存服务工作者,并且我可以使用通过 firebase.json 在 Firebase 中推送 h2。

我不确定我是否知道何时使用它们以及它们之间的区别是什么,因为它们似乎有着相同的目标,还是我错了?

用户请求了您的网站。 您回复 index.html。 Index.html 将请求 4 个其他资源。

没有 H2 推送: 浏览器将解析 index.html。看到还需要 4 个资源,然后进行这些调用。

使用 H2 Push:服务器将在浏览器请求之前发送 index.html 以及其他 4 个资源。

预缓存服务工作者: 触发页面加载事件后,您将开始安装 Service Worker,在此期间它将预缓存已添加到 PrecacheConfig 中的资源。从第二次加载开始,service worker 将拦截网络请求,根据缓存规则集进行所需的处理并做出适当的响应。

因此H2 push 用于初始加载,precache 用于重复加载。