註冊服務工作者

// 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 檔案。