javascript - 在哪里放置 ServiceWorker 片段 - 头部或 body ?

标签 javascript service-worker offline-mode

我从服务人员开始(聚会有点晚,但总比从不好),我把我的 <script>if ('serviceWorker' in navigator) {..}</script>最底部的片段,下面是我的另一个片段(System.import(...))。

那是它的好地方吗?我还应该将标准脚本片段放在页面上的什么地方:头部或正文的开头?或者把它放在另一个脚本中?

更重要的是——为什么?

最佳答案

取决于您的服务 worker 的重量级,以及在初次访问期间需要在您的页面上执行多少 JavaScript,它可能会或可能不会产生影响。但是你可以阅读this article有关服务 worker 注册最佳实践的信息,以更深入地了解何时可能很重要。

从文章中得出的结论是,一个合理的模式是使用

if ('serviceWorker' in navigator) {
  window.addEventListener('load', function() {
    navigator.serviceWorker.register('/service-worker.js');
  });
}

注册您的服务人员。只要它在 load 之前运行,它几乎可以出现在您页面的任何位置。事件被触发。

关于javascript - 在哪里放置 ServiceWorker 片段 - 头部或 body ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41615131/

相关文章:

javascript - TransitionEnd 监听器在子元素上触发

javascript - notificationclick事件服务 worker

javascript - 我应该在服务人员中使用 self 还是 this ?

android - 离线 map OSM

javascript - 清除 JavaScript/jQuery 事件队列

javascript - UnhandledPromiseRejectionWarning : Unhandled promise rejection (NodeJs, Webdriverio, Selenium)

javascript - 从图像 URL javascript html 保存图像文件

javascript - 对使用 NextJS 和 Express 的 service worker 感到困惑

android - 用于 Android 的 Picasso 库是否在网络连接关闭时处理图像加载?

android - 在android中显示缓存版本的webview