异步编程即各任务不一定是按顺序执行的, 对于耗时的任务可以处理成异步任务, 异步任务开启后, 不等待执行结果就可以执行下一个任务, 对其他事件做出响应....(first.value); }
// 当MessageEvent类型的事件冒泡到 worker 时,事件监听函数 EventListener 被调用
worker.onmessage...= (e) => { result.textContent = e.data; }
// 当messageerror类型的事件发生时,对应的事件处理器代码被调用
worker.onmessageerror...都 Cache 对象, 再使用 Cache 对象的方法去处理缓存, 例如 addAll 会抓取一个 URL 数组,检索并把返回的 response 对象添加到给定的 Cache 对象中
激活
安装完成后..., 如果下载的 SW 文件是新的, 安装就会在后台尝试进行, 安装成功后不会被激活, 会进入 waiting 阶段, 直到所有已加载的页面不再使用旧的 SW 才会被激活.
4) fetch
还有一个值得监听的重要事件是