美文网首页前端知多少
ShareWorker的使用说明(网上的这些都太不详细了,容易误

ShareWorker的使用说明(网上的这些都太不详细了,容易误

作者: AlphaEarth | 来源:发表于2020-01-19 16:46 被阅读0次

官方并没有给出多个标签页共享线程的(明显)案例,所以会导致别人按照官网的代码写了,为什么没有推送到其他页面呢?经过自己反复测试,加上问了一些富有经验的同学,搞明白了,原因就是共享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的使用说明(网上的这些都太不详细了,容易误

    官方并没有给出多个标签页共享线程的(明显)案例,所以会导致别人按照官网的代码写了,为什么没有推送到其他页面呢?经过...

  • 你不是三分钟热度,你就是懒

    上午发现自己在工作中又犯了错,虽然没有人责备,但自己心里还是挺难过的,本来可以避免这些错误的,怪自己太不仔细了,以...

  • 我们都活的太不容易了

    原谅我忽然就想释放一下悲伤的情绪。真的,有时候悲伤来的时候怎么抵抗都是没用的,因为它,猝不及防。 我一直都觉得物质...

  • 腿都溜细了

    文/陶妈 今天晚饭是陶爸烧的,他让我们快点吃,吃好了趁不下雨出去一趟。我以为是带我们去以前租的房子里,东西搬完了,...

  • 我参加的小白营助教培训

    2018.10.12 这是我的粗心的一天,以后再也不用手机了写作业了,真是太不仔细了!

  • GIT使用说明(网上找的)

    安装完成后,在开始菜单里找到“Git”->“Git Bash” git config --global user....

  • 幸福是拥有过滤的能力

    生活中我们常常听到各种抱怨,听多了,唯一的感叹就是生活太不容易,大家都太不容易,都不幸福。其实仔细想想,...

  • 说心情

    这些是不是都有我们的影子,或者曾经和我们的相似。 现在每一个人活着都太不容易了,竞争越来越激烈,现实,残酷。房价越...

  • Spring Security怎么添加图片验证功能?

    前言 Spring security添加图片验证方式,在互联网上面有很多这种博客,都写的非常的详细了。本篇主要讲一...

  • 这次都打的太不容易了

    逆境重生啊

网友评论

    本文标题:ShareWorker的使用说明(网上的这些都太不详细了,容易误

    本文链接:https://www.haomeiwen.com/subject/obgrzctx.html