ssnau / blog

1 stars 0 forks source link

Service Worker #5

Open ssnau opened 7 years ago

ssnau commented 7 years ago

如何加载service worker?

执行类似如下脚本:

  navigator.serviceWorker.register("/sw.js")
    .then(reg => console.log("SW registered!", reg))
    .catch(err => console.log("Boo!", err));

要注册service worker的脚本,一定需要满足如下条件:

service worker的作用域是怎么回事?

作用域只与path-to-sw.js的路径相关。SW 的默认作用域为基于当前文件 URL 的 ./。意思就是如果你注册的sw是//example.com/foo/bar.js,那么它默认的作用域为 //example.com/foo/。

当然,如果你想注册//example.com/foo/bar.js,你的页面的域名必须是example.com

service worker的工作机制

service worker是在后台工作的,所以一旦激活了service worker,只要在这个脚本控制范围内的页面,其发出的所有请求(当然包括页面请求本身),都会被service worker监听到。