JavaScript被设计为在单线程环境中运行,这意味着多个脚本不能同时运行。考虑一种情况,您需要处理UI事件,查询和处理大量API数据以及操纵DOM。
如果CPU使用率很高,JavaScript会挂起您的浏览器。让我们举一个简单的例子,其中Javascript经历一个大循环:
<!DOCTYPE HTML>
<html>
<head>
<title>Big for loop</title>
<script>
function bigLoop(){
for (var i = 0; i <= 10000; i += 1){
var j = i;
}
alert("Completed " + j + "iterations" );
}
function sayHello(){
alert("Hello sir...." );
}
</script>
</head>
<body>
<input type = "button" onclick = "bigLoop();" value = "Big Loop" />
<input type = "button" onclick = "sayHello();" value = "Say Hello" />
</body>
</html>单击“大循环”按钮后,将显示以下内容:

可以使用Web Worker处理上述情况,Web Worker将执行所有计算量大的任务,而不会中断用户界面,并且通常在单独的线程上运行。