Shared Worker 可通过保存并遍历 MessagePort 实现广播:onconnect 时存端口到 clients 数组,广播时检查 port.readyState === 'open' 后 postMessage;页面端创建 SharedWorker 并通过 port.postMessage({type: 'broadcast'}) 触发,支持 topic 分类分发。Shared Worker 本身不自带"广播"功能,但可以通过在 Worker 脚本中主动遍历所有已连接的 MessagePort 实例,逐个调用 port.postMessage(),实现向所有页面发送相同消息的效果。这是最常用、最可控的广播方式。核心逻辑:收集端口 + 遍历发送Worker 线程需在 onconnect 事件中保存每个页面传来的通信端口,并在需要广播时统一推送:每次有新页面连接,e.ports[0] 就是一个专属端口,把它存进数组(如 clients = []) 发送广播前,确保每个端口都已调用过 port.start()(使用 port.onmessage 可自动触发) 遍历 clients 数组,对每个端口执行 port.postMessage(data) 注意:若某页面已关闭但端口未及时清理,port.postMessage() 不会报错,但消息无法送达;可结合 port.onclose 或定期检查 port.readyState === 'open' 做清理Worker 脚本示例(shared-worker.js)以下代码实现基础广播能力: Trenz AI驱动的社交电商营销平台,专为TikTok Shop设计
相关推荐
X56611 分钟前
什么是Bootstrap的移动优先响应式设计m0_470857641 分钟前
实现一个可精确定位、支持左右移动与删除的文本光标系统m0_591364733 分钟前
mysql如何通过索引减少行锁范围_mysql索引与加锁逻辑川冰ICE5 分钟前
Python爬虫实战⑲|Pandas数据合并与重塑,多数据源整合代码中介商5 分钟前
MySQL 核心进阶:事务、隔离级别与视图实战七爷不在我这里7 分钟前
oracle的26版本及以下 Null的判断及空串判定acanab7 分钟前
isaaclab资产打包的一种方式Be reborn9 分钟前
从一行 CSV 到一次浏览器操作:关键字驱动执行引擎设计创意岛11 分钟前
AI时代,你的品牌在城市发展中“被消失”了吗?weixin_4440129315 分钟前
CSS如何实现单选按钮自定义样式_利用伪元素隐藏默认UI