(first.value); }
// 当MessageEvent类型的事件冒泡到 worker 时,事件监听函数 EventListener 被调用
worker.onmessage...= (e) => { result.textContent = e.data; }
// 当messageerror类型的事件发生时,对应的事件处理器代码被调用
worker.onmessageerror...只加载了一次, 下面分别是 index.html 和 index2.html 的 network 情况, 说明两个同源的页面是共享了同一个线程, 并且启动后, 刷新页面也不会重新去初始化worker,..., 如果下载的 SW 文件是新的, 安装就会在后台尝试进行, 安装成功后不会被激活, 会进入 waiting 阶段, 直到所有已加载的页面不再使用旧的 SW 才会被激活.
4) fetch
还有一个值得监听的重要事件是...fetch, 他是进行自定义请求响应的, 每次请求被 SW 控制的资源时,都会触发 fetch 事件,这些资源包括了指定的 scope 内的文档, 和这些文档内引用的其他任何资源.