用Google Gears增强您的Web应用程序 - 编程入门网
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 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |