javascript - ServiceWorker 片段应该放在哪里 - 头部还是主体?

标签 javascript service-worker offline-mode

我从服务人员开始(有点晚了,但总比没有好),我把我的 <script>if ('serviceWorker' in navigator) {..}</script>最底部的代码片段,位于我的另一个代码片段 ( System.import(...) ) 下方。

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

更重要的是——为什么?

最佳答案

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

本文的要点是,合理的模式是使用

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

注册您的 Service Worker。只要它在 load 事件触发之前运行,它就几乎可以出现在页面上的任何位置。

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

相关文章:

javascript - 如何使用 Service Worker 内部的 fetch 请求模拟真实的 "visit"

python - plotly - 无法使用 bar_mpl() 在离线模式下绘制条形图

php - 离线移动 PHP MySQL Web 应用程序

javascript - 我的程序适用于 array::forEach 但不适用于 for 循环

javascript - 无法在 Node.js 中检索 Redis 中的值?

angular - 在 angular5 中使用 sw 预缓存时排除子站点 url

javascript - Service Worker 注册错误 : Unsupported MIME type ('text/html' )

node.js - NoSql 与远程服务器离线同步

Javascript 函数返回 undefined variable

javascript - 仅针对开发从 tsconfig 发出 SourceMap