Worker.onmessage - Web API 接口参考 编辑

Worker 接口的onmessage属性表示一个EventHandler事件处理函数,当message 事件发生时,该函数被调用。这些事件所属MessageEvent类型,且当Worker子线程返回一条消息时被调用(比如:从DedicatedWorkerGlobalScope.postMessage函数发出的信息)

注意: 消息被装载到 message事件对象的data属性。(译者:即传递的消息参数将被赋值给onmessage处理函数的事件参数e中的data属性)

语法

myWorker.onmessage = function(e) { ... }

范例

下面的代码片段示范用Worker() 构造函数创建一个Worker对象。当表单的first输入框的值变更时,消息被传递给worker。myWorker.onmessage函数用来处理从worker回传的消息。

var myWorker = new Worker('worker.js');

first.onchange = function() {
  myWorker.postMessage([first.value,second.value]);
  console.log('Message posted to worker');
}

myWorker.onmessage = function(e) {
  result.textContent = e.data;
  console.log('Message received from worker');
}

worker.js中,  onmessage 函数用来接收从主线程传递过来的信息:

onmessage = function(e) {
  console.log('Message received from main script');
  var workerResult = 'Result: ' + (e.data[0] * e.data[1]);
  console.log('Posting message back to main script');
  postMessage(workerResult);
}

请注意,主线程中必须以myWorker.onmessage方式调用,  反之 worker.js 脚本中, 只需定义 onmessage, 因为worker.js全域有效(DedicatedWorkerGlobalScope).

完整范例,请参考Basic dedicated worker example (run dedicated worker).

规范

规范状态注释
HTML Living Standard
Worker.onmessage
Living StandardNo change from Unknown.
Unknown
Worker.onmessage
UnknownInitial definition.

浏览器兼容性

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!
特性ChromeFirefox (Gecko)Internet ExplorerOperaSafari (WebKit)
基本支持43.510.010.64
特性AndroidFirefox Mobile (Gecko)Firefox OS (Gecko)IE PhoneOpera MobileSafari Mobile
基本支持4.43.51.0.110.011.55.1

参阅

Worker 接口所属。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

词条统计

浏览:57 次

字数:5429

最后编辑:7年前

编辑次数:0 次

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文