Web worker 是运行在后台的JavaScript,不会影响页面的性能。
什么是Web Worker?
当在 HTML 页面中执行脚本时,页面的状态是不可响应的,直到脚本已完成。
web worker 是运行在后台的 JavaScript,独立于其他脚本,不会影响页面的性能。您可以继续做任何愿意做的事情:点击、选取内容等等,而此时 web worker 在后台运行。
创建Web Worker
在外部创建一个js文件,举例设定一个计数脚本,取名为‘worker.js’
var i=0; function timedCount() { i=i+1; postMessage(i); setTimeout("timedCount()",500); } timedCount();
使用postMessage()方法向HTML页面传回一段消息。
web worker 通常用于更耗费CPU资源的任务,而不是简单任务。
在HTML文档调用web worker
w = new Worker("worker.js") //为web worker添加一个事件监听器 w.onmessage=function(event){ document.getElementById("result").innerHTML=event.data; };
终止 Web Worker
当我们创建 web worker 对象后,它会继续监听消息(即使在外部脚本完成之后)直到其被终止为止。
如需终止 web worker,并释放浏览器/计算机资源,请使用 terminate() 方法:
w.terminate()
注意:由于Web Worker属于外部文件,所以无法访问window对象、document对象和parent对象。