众所周知,Javascript是单线程。
Web Worker为Web内容在后台线程中运行脚本提供了一种简单的方法。线程可以执行任务而不干扰用户界面。
我们可以将一些与用户界面的dom操作无关的操作,放入Web Worker中运行,避免阻塞。
注:在worker线程中你可以运行任何你喜欢的代码,不过有一些例外情况。比如:在worker内,不能直接操作DOM节点,也不能使用window对象的默认方法和属性。然而你可以使用大量window对象之下的东西。
Web Worker的使用分为主线程和子线程。
主线程
你的项目中任何一个写js代码的地方,worker.js
为你创建的子线程文件。放在webpack项目中找不到,需要放到根目录。
// 1. 创建一个Worker实例
var worker = new Worker("./worker.js");
// 2.发送消息给子线程