🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
webworker运行在独立的线程中,不会阻塞主线程,这是浏览器的特性而不是js的。webworker内的代码是独立的,不能访问外部变量,并且只能使用ajax、navigator、location、JSON、applicationCache这些全局变量。 ``` //这个js内的代码会在独立的线程中运行 var w1 = new Worker("xxx.js"); //只能通过js文件的方式启动一个worker //内部与外部之间只能用message这个key w1.addEventListener('message', function(evt) { evt.data... }); w1.postMessage('something else'); //js内部 addEventListener('message', function(evt) { evt.data... }); postMessage('a really cool reply'); w1.terminate(); //终止worker 相当于直接关闭浏览器 //js内部 //你还可以加载其他js文件并执行,加载的过程是同步的,worker会等加载完成后在继续执行 importScripts('foo.js', 'bar.js'); ``` webworker适用场景: 处理密集型数学计算、大数据集排序、数据处理(压缩、音频分析、音像处理)、高流量网络通信。 #### 测试 Benchmark.js测试库