因为javascript是单线程的(注意浏览器不是单线程的, js调用其内部的api也不一定是单线程的, 如定时器), 其只有一个线程用来执行代码, 所以为了避免遇到计算量大、耗时的任务阻塞线程继续往下执行...虽然有事件循环机制, 但其本质上还是在一个单线程上执行, 它在同一时间也只能做一件事情, 如果它正在等待长期运行的同步调用返回,就不能做其他任何事情....有没有一种方法, 可以在多线程中并行执行某些任务? Workers 就赋予了在不同线程中运行某些任务的能力,因此你可以启动任务,然后继续其他的处理....这样做的好处是可以在独立线程中执行费时的处理任务,从而允许主线程(通常是 UI 线程)不会因此被阻塞/放慢[MDN解释].
js中的Web Workers有三种类型:
Dedicated Workers..., 此时将网络断开, 发现缓存的资源仍然可以获取到, 页面仍然可以正常访问
再看看Application的Cache Storage, 可以看到以 key 值 v1 存储的响应缓存, 这些缓存文件都是我们在