js service worker

概念

service worker实际上是充当位于Web应用程序,浏览器和网络(如果可用)之间的代理服务器它们的主要作用是创建有效的脱机体验拦截网络请求并根据网络是否可用采取适当的措施,以及更新服务器上的资产。他们还将允许访问推送通知和后台同步API。

特点

  1. 由事件驱动的,具有生命周期
  2. 可以访问cache和indexDB
  3. 支持推送
  4. 并且可以让开发者自己控制管理缓存的内容以及版本
  5. 没有DOM访问权限
  6. 基于web worker
  7. 完全异步,无法使用XHR和localStorage
  8. 只能使用HTTPS以及localhost
  9. 一旦被 install,就永远存在,除非被 uninstall或者dev模式手动删除

使用

注册

if ('serviceWorker' in navigator) {
  navigator.serviceWorker.register('./sw-test/sw.js', {scope: './sw-test/'})
  .then((reg) => {
    // registration worked
    console.log('Registration succeeded. Scope is ' + reg.scope);
  }).catch((error) => {
    // registration failed
    console.log('Registration failed with ' + error);
  });
}

下载,安装并激活

生命周期

 https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API/Using_Service_Workers

@萍2樱释ღ( ´・ᴗ・` )

打不死的小强
原文地址:https://www.cnblogs.com/mggahui/p/14220939.html