早期计算机浏览器是单核的,随着时代的发展计算机演变成了多核,这样如果还是使用单线程就会导致一些资源的浪费,所以HTML5的规范中提供了一个多线程的解决方案,这就是WEB-WORKER。
web workers 是运行在后台的JavaScript,独立于其他脚本,不会影响页面的性能。
浏览器支持
IE10及以上版本,Firefox,Chrome,Safari和Opera都支持WebWorker
一般会在使用前增加前置校验,检测当前浏览器版本是否支持
方法
postMessage():向html页面传递数据。
terminate():中止web workers,并释放浏览器/计算器资源。
事件
onmessage:监听通过postMessage方法发送过来的数据变化
// count.js文件
var contNum = 0;
function count(){
postMessage(contNum);
contNum++;
setTimeout(count,1000);
}
contNum()
//index.js文件
var numDiv;
window.onload = function(){
var work = new worker('count.js')
work.onmessage = function(e){
console.log(1)