HTML5 web worker简介

本文介绍了HTML5 Web Workers的概念、基本使用方法以及如何在页面中建立双向通讯机制,包括error handling和使用FileURL建立worker的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

HTML5 web worker就像在java中新建一个thread一样,创建一个独立的环境运行计算量比较大的程序,于目前来说还是没有太大的用武之地,但是估计以后可能用途比较大。

基本的代码很简单:

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

worker.addEventListener('message', function(e) {
  console.log('Worker said: ', e.data);
}, false);

worker.postMessage('Hello World'); // Send data to our worker.


doWork.js
self.addEventListener('message', function(e) {
  self.postMessage(e.data);
}, false);


要注意的是在页面里我们需要建立双向通讯机制:postMessage和 addEventListener (in page we need postMessage() to post it to worker and onmessage to receive from worker)

在worker.js中也要建立双向通讯机制 (in worker we also need postMessage to post it to page and on message to receive from page)


其他要注意的是error handling和如果你不想建立单独的worker.js也可以使用FileURL建立 (use objectURL to load worker in the same page)


// Prefixed in Webkit, Chrome 12, and FF6: window.WebKitBlobBuilder, window.MozBlobBuilder
var bb = new BlobBuilder();
bb.append("onmessage = function(e) { postMessage('msg from worker'); }");

// Obtain a blob URL reference to our worker 'file'.
// Note: window.webkitURL.createObjectURL() in Chrome 10+.
var blobURL = window.URL.createObjectURL(bb.getBlob());



http://www.html5rocks.com/en/tutorials/workers/basics/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值