【问题标题】:Service worker slower than network calls in PWA?Service Worker 比 PWA 中的网络调用慢?
【发布时间】:2020-01-10 12:58:53
【问题描述】:

基于 PWA 的缓存调用会比网络调用慢吗?

这是我在其中一个 Web 应用程序中看到的 JSON 资源:

缓存清除并从服务调用:426 毫秒从服务工作者调用(在开发工具/网络大小中,它从服务中提到 工人):576 毫秒

Manifest.json 中没有该文件的条目,但在 ngsw-manifest.json 中该文件在 static 中被提及。

我不确定这种想法是否错误,但看起来从缓存读取比对某些资源的网络调用要慢。

【问题讨论】:

    标签: angular progressive-web-apps angular-pwa


    【解决方案1】:

    是的,如果您在 Service Worker 中有 fetch 事件处理程序,那么它会为网络请求增加一些延迟。因为它拦截了来自您的应用程序的所有请求。但是,当您立即从 Cache Storage API 提供响应而不是通过网络提供响应时,使用它的美妙和好处就会大放异彩。

    您可能想阅读有关 Google 搜索中服务工作线程使用情况的文章https://web.dev/google-search-sw/#problem:-service-worker-overhead

    ,了解有关此主题的更多信息

    如果没有 service worker,这个网络请求会立即发生 在用户导航时。当服务工作者注册时,它总是 需要启动并有机会执行其 fetch 事件 处理程序,即使这些 fetch 处理程序不可能做 除了上网之外的任何东西。它的时间量 需要启动和运行服务工作者代码是纯粹的开销 添加在每个导航的顶部。

    【讨论】:

      猜你喜欢
      • 2018-09-29
      • 2019-01-08
      • 1970-01-01
      • 2020-11-20
      • 1970-01-01
      • 1970-01-01
      • 2022-08-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多