❑ 工作者线程简介
❑ 使用专门的工作者线程执行后台任务
❑ 使用共享的工作者线程
❑ 通过服务工作者线程管理请求
单线程就意味着,不能像多线程语言那样,把工作委托给独立的线程或进程去做。
JavaScript的单线程可保证它与不同浏览器API兼容。
假如JavaScript可以多线程执行并发更改,那么像DOM这样的API就会出现问题。
而这也正是工作者线程的价值所在:
允许把主线程的工作转嫁给独立的实体,而不会改变现有的单线程模型。
虽然本章要介绍的各种工作者线程有不同的形式和功能,但它们的共同的特点是都独立于JavaScript的主执行环境。
工作者线程可以运行异步JavaScript而不阻塞用户界面。这非常适合复杂计算和数据处理,特别是需要花较长时间因而会影响用户使用网页的处理任务。
工作者线程有自己独立的环境,只能通过异步消息与外界通信。
工作者线程可以是专用线程、共享线程。
专用线程只能由一个页面使用了;
共享线程则可以由同源的任意页面共享;
服务工作者线程用于让网页模拟原生应用程序。
服务工作者线程也是一种工作者线程,但它们更像是网络代理,而非独立的浏览器线程。可以把它们看成是高度定制化的网络缓存,它们也可以在PWA中支持推送通知。
