快速业务通道

用Google Gears增强您的Web应用程序 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15
 function callWorker1 (){       /* 创建一个子 Worker, 调用完  createWorkerFromUrl 方法后,        * 父 worker 和子  worker 将并行运行,当然子 worker 是在后台运行            */        var childWorkerId =  wp1.createWorkerFromUrl(''worker.js'');       // 父 worker  发送消息给子 worker       wp1.sendMessage(["Hello,",  {"gears": "Google Gears!"}], childWorkerId);      }      function callWorker2(){       var  childWorkerId = wp2.createWorkerFromUrl(''worker.js'');        wp2.sendMessage(["您好 ,", {"gears": "世界 !"}],  childWorkerId);      }     </script>   </head>   <body>     <h1>Hello,  WorkerPool API</h1>     <input type="button"  value="WorkPool A Calls Child Worker"        onclick="callWorker1();">     <input type="button"  value="WorkPool B Calls Child Worker"        onclick="callWorker2();"><hr/>     <div  id="msg"></div>   </body> </html> worker.js 文件  (function(){  // 子 worker 可以 在此执行计算量很大的代码 })(); var wp =  google.gears.workerPool; wp.onmessage = function(a, b,  message) {   var reply = "This is reply message from  child work:"     + message.body[0]     +  message.body[1].gears;   wp.sendMessage(reply,  message.sender); }

用Google Gears增强您的Web应用程序(6)

时间:2011-08-27 IBM 傅飞 古力

WorkerPool 不是单例对象,所以可以 看到在上面的父页面中可以创建两个 WorkerPool。在父页面的 Javascript 代码 相当于父 worker, 你可以用 WorkerPool 对象的 createWorkerFromUrl() 方法 创建一个子 worker, 该方法的参数是 JavaScript 文件的 URL, 也可以用 createWorker() 方法创建,参数是一段 JavaScript 代码。创建完子 worker 之 后,父 worker 和子 worker 将并行运行 , 子 worker 在后台承担计算量大的任 务,而父 worker 在前面继续响应处理用户操作。

另外,由于 WorkerPool 更像是一个进程池,而不是线程池,所以 worker 之间不共享执行状 态,他们之间的相互通讯只能通过消息传递,也就是调用 WorkerPool 对象的 sendMessage() 方法,该方法有两个参数:

第一个参数是要传递的消息内 容。

第二个参数是接受该消息的 worker 的 ID,WorkerPool 对象的两个 方法 createWorkerFromUrl() 和 createWorker() 返回的就是创建的子 worker 的 ID, 可以用来作为该参数的值。

不管是父 worker 还是子 worker, 要 想得到 sendMessage() 方法传过来的消息,都需要事先定义回调函数 onmessage ,用于处理接收到的消息。

正是由于 WorkerPool 之间不共享执行状态, 作为结果,子 worker 不能访问父页面的 DOM,以及 document, window 这样的 对象,只有父 worker 能访问这些对象。如果子页面要访问这些对象,可以通过 给父 worker 发消息让父 worker 来访问。但是,子 worker 还是能调用 JavaScript 的内置函数和大部分 Google Gears API。

使用 Database API

为了让 Web 应用程序支持离线操作,首先需要解决的问题是将 Web 应用程序包含的 HTT

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号