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



相关文章
|
数据采集 人工智能 数据可视化
Scala多线程爬虫程序的数据可视化与分析实践
Scala多线程爬虫程序的数据可视化与分析实践
|
JavaScript 前端开发 编译器
10min代码快速熟悉Tsconfig.json配置文件
【8月更文挑战第16天】10min代码快速熟悉Tsconfig.json配置文件
502 2
|
安全 程序员 C++
C++中的类型查询:探索typeid和type_info
C++中的类型查询:探索typeid和type_info
262 1
|
11月前
|
存储 分布式计算 资源调度
如何8步完成hadoop单机安装
本文介绍了在Ubuntu 20.04上安装和配置Hadoop 3.3.6的详细步骤。首先更新系统并安装Java环境,接着下载、解压Hadoop并配置环境变量。然后编辑核心配置文件`core-site.xml`和`hdfs-site.xml`,格式化HDFS文件系统,并启动Hadoop服务。最后通过`jps`命令和浏览器访问Web界面验证安装是否成功。Hadoop是一个开源框架,用于分布式存储和处理大规模数据集,其核心组件包括HDFS、MapReduce和YARN。
492 6
|
SQL 负载均衡 关系型数据库
*配置MySQL集群
【8月更文挑战第16天】*配置MySQL集群
492 2
|
机器学习/深度学习 自然语言处理 前端开发
前端神经网络入门:Brain.js - 详细介绍和对比不同的实现 - CNN、RNN、DNN、FFNN -无需准备环境打开浏览器即可测试运行-支持WebGPU加速
本文介绍了如何使用 JavaScript 神经网络库 **Brain.js** 实现不同类型的神经网络,包括前馈神经网络(FFNN)、深度神经网络(DNN)和循环神经网络(RNN)。通过简单的示例和代码,帮助前端开发者快速入门并理解神经网络的基本概念。文章还对比了各类神经网络的特点和适用场景,并简要介绍了卷积神经网络(CNN)的替代方案。
1588 1
|
机器学习/深度学习 算法 vr&ar
Theta方法:一种时间序列分解与预测的简化方法
Theta方法整合了两个基本概念:分解时间序列和利用基本预测技术来估计未来的价值。
506 0
|
网络安全 Windows
window powershell 查看ssh
window powershell 查看ssh
693 0
|
C语言 Linux
linux系统的glibc是什么?为什么很重要?
【6月更文挑战第3天】linux系统的glibc是什么?为什么很重要?
1342 2
|
JSON 小程序 数据格式
uni-app 使用vscode开发uni-app
uni-app 使用vscode开发uni-app
675 0