web worker 是运行在后台的 JavaScript,不会影响页面的性能。
实现一个非常简单的web workers例子:
一.先来看一个反面教材:
模拟一个耗时运算用传统方式实现。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<textarea id="textareaId"></textarea>
</body>
<script>
var num = 5000000000,
r = 0,
i=num;
for (;i;i--) {
r += i;
}
//直接处理耗时操作,结果浏览器直接卡爆,等了一分钟都没反应。
document.getElementById("textareaId").innerHTML= r;
</script>
</html>
由此可见这样的方式处理耗时操作要不得。
二.web workers小实例:
web workers的方法还有很多,但是我这里就只实现最简单的功能,两个线程之间数据的交互,一个线程我把它称为JS线程,一个为worker线程,其中worker线程是处理耗时运算的。