“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);
相关文章推荐: