本文主要是介绍ShareWorker的使用说明(网上的这些都太不详细了,容易误导大家),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
官方并没有给出多个标签页共享线程的(明显)案例,所以会导致别人按照官网的代码写了,为什么没有推送到其他页面呢?经过自己反复测试,加上问了一些富有经验的同学,搞明白了,原因就是共享js没有存储客户端(标签页),接受到推送时候要向每个客户端都推送。
1.ShareWorker.js
var clients = [];
onconnect = function(e) {var port = e.ports[0];clients.push(port);port.addEventListener('message', function(e) {for (var i = 0; i < clients.length; i++) {var eElement = clients[i];eElement.postMessage(e.data)}});port.start();
}
2.在需要推送的页面里面添加开启共享线程的代码,shareworker-message.js
myWorker = new SharedWorker("script/scenesetting/ShareWorker.js");
myWorker.port.onmessage=function(e) {var result=e.data;//此处就是共享现成推送过来的数据可以是字符串、数组、json
/***********上面拿到数据后,就可以在下面做一些你想造做的事************/
};
3.引用第二步的shareworker-message.js文件
myWorker.port.postMessage(newData);
这篇关于ShareWorker的使用说明(网上的这些都太不详细了,容易误导大家)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!