位置:首页 > 软件操作教程 > 编程开发 > HTML > 问题详情

HTML5 Web Workers简介

提问人:刘团圆发布时间:2020-11-17

    —个worker是一个使用构造函数(如Worker())来创建的对象,在一个命名的JS文件里面运行,这个文件包含了在worker线程中运行的代码。Workers不同于现在的window,是在另一个全局上下文中运行的。在专用的Workers例子中,是由DedicatedWorkerGlobalScope对象代表这个上下文环境。标准Workers是由单个脚本使用的,共享Workers使用的是SharedWorkerGlobalScope。

    在worker线程里面,可以运行任何你喜欢的代码,当然也有一些例外。例如,不能直接操作worker里面的DOM,也不能使用window对象的一些默认方法和属性。但是,可以使用window下许多可用的项目,包括WebSockets、类似IndexedDB和Firefox OS独有的Data Store API这样的数据存储机制。

    在HTML5中,创建后台线程的步骤十分简单,只需要在Worker类的构造器中,将需要在后台线程中执行主脚本文件的URL地址作为参数,然后创建Worker对象就可以了,代码如下:

    var Worker = Worket("Worker.js");

    在后台线程中是不能访问页面或窗口对象的。如果在后台线程的脚本文件中使用window对象或 document对象,则会引起错误的发生。

    使用Worker对象的Message方沬来对后台线程发送消息,如下面代码所示:

    Worker.postMessage(message);

    在上述代码中,发送的消息是文本数据,但也可以是任何JavaScript对象(需要通过JSON对象的stingoify方法将其转换成文本数据)。

    另外,可以通过获取Worker对象的onmessage事件句柄及Worker对象的postMessage方法,在后台线程内部进行消息的接收和发送。

继续查找其他问题的答案?

相关视频回答
回复(0)
返回顶部