Code前端首页关于Code前端联系我们

html5 的新特性:Web Workers 文件调用和对象创建

terry 2年前 (2023-09-27) 阅读数 68 #数据结构与算法

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前端网发表,如需转载,请注明页面地址。

热门