Shared Worker 可通过保存并遍历 MessagePort 实现广播:onconnect 时存端口到 clients 数组,广播时检查 port.readyState === 'open' 后 postMessage;页面端创建 SharedWorker 并通过 port.postMessage({type: 'broadcast'}) 触发,支持 topic 分类分发。Shared Worker 本身不自带"广播"功能,但可以通过在 Worker 脚本中主动遍历所有已连接的 MessagePort 实例,逐个调用 port.postMessage(),实现向所有页面发送相同消息的效果。这是最常用、最可控的广播方式。核心逻辑:收集端口 + 遍历发送Worker 线程需在 onconnect 事件中保存每个页面传来的通信端口,并在需要广播时统一推送:每次有新页面连接,e.ports0 就是一个专属端口,把它存进数组(如 clients = \[\]) 发送广播前,确保每个端口都已调用过 port.start()(使用 port.onmessage 可自动触发) 遍历 clients 数组,对每个端口执行 port.postMessage(data) 注意:若某页面已关闭但端口未及时清理,port.postMessage() 不会报错,但消息无法送达;可结合 port.onclose 或定期检查 port.readyState === 'open' 做清理Worker 脚本示例(shared-worker.js)以下代码实现基础广播能力: Trenz AI驱动的社交电商营销平台,专为TikTok Shop设计
相关推荐
Omics Pro15 分钟前
Cell封面|衰老生物学开源AI工具包IT毕设梦工厂17 分钟前
计算机毕业设计选题推荐:基于大数据的二手车数据可视化分析|毕业设计选题|计算机毕设|选题推荐|毕设指导|项目定制|源码|高质量项目Python图像识别23 分钟前
17-【2027毕设】YOLO11水稻病害检测识别系统 - Python完整源码+PyQt5界面+训练模型+数据集天天被压力1 小时前
【别再到处找免费股票数据API了:官方204个接口,32篇一次讲透 #02】涨停跌停与特色股池:5类股池接口一次拉全Wx-bishekaifayuan1 小时前
springboot甘肃特产服务平台50301-计算机课程设计、毕业设计midelshuang1 小时前
RAG 文档解析(三):bbox 实战——多栏排版与水印 PDFFYKJ_20101 小时前
springboot雅集社区养老管理系统04456-计算机课程设计、毕业设计zhanghaha13141 小时前
Python进阶教程:35_PyQt (保姆级零基础教程)信誓旦旦的程序猿2 小时前
【Python 量化取数指南 #09】Python 拿港股通数据:港股通成交与港股财报实测FYKJ_20102 小时前
springboot羽毛球场地管理系统00626-计算机课程设计、毕业设计