我的主线程的JS代码:
$('body').on('click',function(){alert('click');});
var worker = new Worker('worker.js');
worker.addEventListener('message', function(e) {
console.log(e.data);
});
以及 worker.js 内的代码。
var n = 1;
while (true) {
n++;
postMessage(n);
}
我刚开始学习有关于
Web workers
的知识。它们不会阻塞用户界面,可以让您与之交互,并在单独的线程中运行以实现并行性。但实际上,运行上述代码时得到的结果是浏览器卡住了,无法响应任何点击。虽然工作线程输出数字,但用户界面依旧被阻塞了。我希望能够得到一些好的解释。谢谢!