FireFox 查看 Service Worker
1
2
3
| about:debugging#/runtime/this-firefox
about:debugging
|
chrome 查看 Service Worker
1
2
3
| chrome://inspect/#service-workers
chrome://serviceworker-internals/
|
https://juejin.cn/post/6950988377684443167
什么是Service Worker
Service worker是一个注册在指定源和路径下的事件驱动worker。它采用JavaScript控制关联的页面或者网站,拦截并修改访问和资源请求,细粒度地缓存资源。Service Worker 可以使你的应用先访问本地缓存资源,包括js、css、png、json等多种静态资源。
Service Worker的特点
独立于主JavaScript线程(这就意味着它的运行丝毫不会影响我们主进程的加载性能)
设计完全异步,大量使用Promise(因为通常Service Worker通常会等待响应后继续,Promise再合适不过了)
不能访问DOM,不能使用XHR和localStorage
Service Worker只能由HTTPS承载(出于安全考虑)
样例
1
2
| /work/work.php
/work/work.js
|
work.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| <script>
if ('serviceWorker' in navigator) {
navigator.serviceWorker.getRegistrations().then(function(registrations) {
registrations.forEach(function(registration) {
registration.unregister();
})
})
navigator.serviceWorker.register('/work/work.js', {scope: '/work/'}).then(function(reg) {
alert('ok');
}).catch(function(error) {
alert(error);
});
}
</script>
|
work.js
1
2
3
4
5
6
7
8
| function ttt()
{
console.log('gggg');
// fetch("https://www.baidu.com");
sec = 30;
setTimeout(ttt, sec * 1000);
}
ttt();
|