代码之家  ›  专栏  ›  技术社区  ›  Estus Flask

正在等待窗口加载事件以注册服务工作进程

  •  7
  • Estus Flask  · 技术社区  · 7 年前

    Google Workbox documentation

    <script>
    // Check that service workers are registered
    if ('serviceWorker' in navigator) {
      // Use the window load event to keep the page load performant
      window.addEventListener('load', () => {
        navigator.serviceWorker.register('/sw.js');
      });
    }
    </script>
    

    load 事件处理程序?

    3 回复  |  直到 7 年前
        1
  •  7
  •   abraham    7 年前

    服务人员在后台从主线程加载,但他们仍然消耗计算机资源,如果是预缓存,还消耗网络资源。如果当前呈现页面需要500KB才能呈现,并且您希望预缓存该页面以完全脱机工作,则服务人员还必须下载该500KB。这与呈现的当前页面竞争,因此建议延迟注册服务工作人员,直到当前页面为用户准备就绪。

    web fundamentals .

        2
  •  1
  •   André Kelling    7 年前

    您仍然需要加载所有资源,然后服务人员将它们存储在浏览器中。

    服务辅助线程未与主线程一起运行。

        3
  •  0
  •   Anand    7 年前

    browser implementation as an API . web应用程序中的SW JS代码将与浏览器的SW实现对话,以缓存加载SW JS文件之前/之后加载的文件。就软件的缓存能力而言,按什么顺序加载文件的顺序或时间并不重要。