September 26, 2018
javascript是单线程模型,如果要处理一些密集型任务时可能会拖慢主进程的执行(如页面UI卡顿),是否可以使javascript像其他语言使用多线程方式运行,一部分运行在UI线程下,另一部分运行一个独立线程(如只进行某些复杂运算)。
Web Worker作用就是为javascript提供一个创建多线程环境,但是这是浏览器的功能,实际和javascript语言本身几乎没什么关系,浏览器可以提供多个引擎实例,各自运行在自身的线程上,这样就可以在不同的线程上运行不同的程序。在worker内部是无法访问主程序的任何资源,这意味着你不能访问它的任何全局变量,也不能访问页面的DOM或者其他资源,这是一个完全独立的线程。