kk Blog —— 通用基础


date [-d @int|str] [+%s|"+%F %T"]
netstat -ltunp
sar -n DEV 1

前端缓存之:Service Worker

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();

language, web

« MIMIC IV 3.0数据库 JS获取当前地理位置 »