注册服务工作者

// Check if service worker is available. 
if ('serviceWorker' in navigator) {
  navigator.serviceWorker.register('/sw.js').then(function(registration) {
    console.log('SW registration succeeded with scope:', registration.scope);
  }).catch(function(e) {
    console.log('SW registration failed with error:', e);
  });
}
  • 你可以在每个页面加载时调用 register()。如果已注册 SW,则浏览器会为你提供已在运行的实例
  • SW 文件可以是任何名称。sw.js 很常见。
  • SW 文件的位置很重要,因为它定义了 SW 的范围。例如,/js/sw.js 上的 SW 文件只能拦截以/js/开头的文件的 fetch 请求。因此,你通常会在项目的顶级目录中看到 SW 文件。