SharedWorker 演示

简介: SharedWorker 演示

1.jpg

作用: 通过SharedWorker可以在同源内的不同窗口之间传递信息


构建worker脚本


let pool = [];
onconnect = function (e) {
  let port = e.ports[0];
  pool.push(port);
  port.onmessage = function (e) {
    pool.forEach((v) => {
      v != port && v.postMessage(e.data);
    });
  };
};


构建数据共享通道


export class SharedDataChannel {
  constructor(url, cb) {
    this.sharedWorker = new SharedWorker(url);
    this.sharedWorker.port.onmessage = (e) => {
      cb && cb(e.data);
    };
  }
  post(data) {
    this.sharedWorker.port.postMessage(data);
  }
}


在多个页面进行初始化


<script type="module">
    import { SharedDataChannel } from "./index.js";
    const channel = new SharedDataChannel("./worker.js", (res) => {
    document.querySelector("#content").innerHTML += `${res} </br>`;
    });
    document.querySelector("#send").addEventListener("click", () => {
    channel.post("登录页面发送的数据");
    });
</script>
<body>
    登录页面
    <button id="send">发送</button>
    <p id="content"></p>
</body>


调试


chrome://inspect/#workers 导航到 chrome://inspect/#workers 并找到共享的 worker,然后单击"inspect",然后你可以拉起 SharedWorker 的控制台。

2.jpg


效果


4.jpg



相关文章
|
前端开发 JavaScript
Layui之组件的基本使用及案例演示1
Layui之组件的基本使用及案例演示1
95 0
|
前端开发 JavaScript
Layui之组件的基本使用及案例演示2
Layui之组件的基本使用及案例演示2
82 0
Echarts参数属性学习xAxis与yAxis演示案例
Echarts参数属性学习xAxis与yAxis演示案例
190 0
Echarts参数属性学习xAxis与yAxis演示案例
|
JavaScript API
Echarts参数属性学习Gird演示案例
Echarts参数属性学习Gird演示案例
107 0
|
6月前
|
存储 C++
【C++】function包装器全解(代码演示,例题演示)
【C++】function包装器全解(代码演示,例题演示)
|
安全 数据安全/隐私保护
ElementUI基本介绍及登录注册案例演示3
ElementUI基本介绍及登录注册案例演示3
55 1
|
JavaScript 前端开发 API
ElementUI基本介绍及登录注册案例演示1
ElementUI基本介绍及登录注册案例演示1
75 0
|
前端开发 JavaScript API
ElementUI基本介绍及登录注册案例演示2
ElementUI基本介绍及登录注册案例演示2
152 0
|
监控 Dubbo Java
使用场景演示 | 学习笔记
快速学习使用场景演示,介绍了使用场景演示系统机制, 以及在实际应用过程中如何使用。
193 0
使用场景演示 | 学习笔记