html5 的新特性:Web Workers 文件调用和对象创建
Web Workers 在后台运行 JavaScript,独立于其他脚本,不会影响页面的性能。当 Web Worker 在后台运行时,您可以继续执行您想做的任何操作:单击、选择等。 Web作品的应用大致分为三个部分:
- 1.创建网络工作者文件。 Worker 文件是一个单独的 js 文件。逻辑写好后,通过postMessage()方法发送数据
- 2。调用页面创建worker对象,var w = new Worker("workfilepath")。然后通过实例对象调用
onmessage事件进行监听,并获取worker文件中返回的数据 - 3.终止webworker,一旦我们的webworker创建完成,它就会继续监听它。当需要终止时,请在实例上使用
w.terminate()方法。
下面是一个简单的Web Worker文件`
// 这是一个单独的js文件
var i=0;
function timedCount()
{
i=i+1;
postMessage(i); //把数据发送出去
setTimeout("timedCount()",500);
}
timedCount();
复制代码` 在html页面调用worker文件,创建worker对象
`
<div>计数器: <output id="result"></output></div>
<button onclick="startWorker()">开始Worker</button>
<button onclick="stopWorker()">停止Worker</button>
var w;
function startWorker()
{
if(typeof(Worker)!=="undefined")
{
if(typeof(w)=="undefined")
{
w=new Worker("worker.js"); // 创建worker实例对象
}
w.onmessage = function (event) { // 通过onmessage事件接收数据
document.getElementById("result").innerHTML=event.data;
};
}
else
{
document.getElementById("result").innerHTML="Sorry, your browser
does not support Web Workers...";
}
}
function stopWorker()
{
w.terminate(); // 停止worker任务
}
复制代码` Page注意:文件,它无法获取这些JavaScript对象:窗口对象、文档对象、父对象。
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
code前端网