gear 的workpool
[code]<script type="text/javascript" src="gears_init.js"></script><script type="text/javascript">
// main.js
var workerPool = google.gears.factory.create('beta.workerpool');
workerPool.onmessage = function(a, b, message) {
alert('Received message from worker ' + message.sender + ': \n' + message.body);
};
var childWorkerId = workerPool.createWorkerFromUrl('worker.js');
workerPool.sendMessage(["3..2..", 1, {helloWorld: "Hello world!"}], childWorkerId);
</script>// worker.js
var wp = google.gears.workerPool;
wp.onmessage = function(a, b, message) {
var reply = message.body[0] + message.body[1] + "... " + message.body[2].helloWorld;
wp.sendMessage(reply, message.sender);
}[/code]这段代码演示了使用方法。
1、用google.gears.factory 产生一个新的WorkPool(父work),wp
2、设定父work的onmessage,当这个父work收到消息时的处理程序
3、对于每个新的子work。
a、父work通过createWorkerFromUrl() 产生。
b、createWorkerFromUrl()立马返回
c、子work里面的代码执行一次,同时这个代码里面必须写好onmessage函数,这个函数定义在预定义的google.gears.workerPool对象上面。
[color=Sienna]在产生work的时候,父work和子work有点不同,但是一经产生,在相互通讯的时候,是没有什么差别的。[/color]
work之间的通讯。有两种主要的方法:
1、从onmessage的参数中可以得到sender_id。
2、在creatework的时候可以知道一个work的id,保留这个id就可以多次使用。
[[i] 本帖最后由 弯月圆刀 于 2008-9-23 16:53 编辑 [/i]]
页:
[1]
