sharedworker

阅读数:828 发布时间:2016-06-25 17:18:15

作者:gsh 标签: javascript 后台运行 共享流程

介绍

“SharedWorker”对象代表Shared Web Worker,一般来说在web worker中运行的代码是专为当前页面服务的。而在一些特定情况下,web worker可能运行的是更为普遍性的代码,可以为多个页面服务。在这种情况下,我们会创建一个共享线程的Shared web worker,它可以被与之相关联的多个页面访问,只有当所有关联的的页面都关闭的时候,该Shared web worker才会结束。

例子

addEventListener("message", function(evt){  
var date = new Date();  
var currentDate = null;  
do {  
currentDate = new Date();  
}while(currentDate - date < evt.data);  
postMessage(currentDate);  
}, false);  

这里创建了一个SharedWorker对象,并把message事件绑定在shared worker的port对象上;同样由port对象发起postMessage, 开始执行后台代码sharedlengthytask.js。

下面是sharedlengthytask.js的主要代码:

var port;  
addEventListener("connect", function(evt){  
port = evt.ports[0];  
port.addEventListener("message", function(evt){  
var date = new Date();  
var currentDate = null;  
do {  
currentDate = new Date();  
}while(currentDate - date < evt.data);  
port.postMessage(currentDate);  
}, false);  
port.start();  
}, false); 

相关文章推荐: