Service Worker

Service Worker的作用 
  1.网络代理,转发请求,伪造响应 
  2.离线缓存
  3.消息推送
  4.后台消息传递

Service worker是独立于页面的一个运行环境,它在页面关闭后仍可以运行。同时,也能对它负责的页面的网络请求进行截取和返回请求(类似于Fiddler)。


service worker权限太大,必须在HTTPS下才可使用

生命周期

在chrome中 

打开chrome://inspect/#service-workers

和chrome://serviceworker-internals/

可以查看和操作当前的service worker

上一段启动的示例代码:

//index.html
if ('serviceWorker' in navigator) {
            window.addEventListener('load', function() {
                navigator.serviceWorker.register('sw.js').then(function(registration) {
                    console.log('serviceWorker registration successful with scope', registration.scope)
                }).catch(function(err) {
                    console.log('serviceworker registration failed', err)
                })
            })
        }
//sw.js
self.addEventListener('install', function(event) { console.log("SW installed"); var obj = { a: 1, b: 2 } fireNotification(obj, event); }); self.addEventListener('activate', function(event) { console.log("SW activated"); }); self.addEventListener('fetch', function(event) { console.log("Caught a fetch!"); event.respondWith(new Response("Hello world!")); });

service worker不可以直接操作dom可以和页面之间发送message,也可以发送notification




原文地址:https://www.cnblogs.com/zqiong/p/6678363.html