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设计
相关推荐
one_love_zfl2 小时前
java面试-JVM篇qq_189807032 小时前
SQL嵌套查询与物化视图_提升读性能的组合策略u0109147602 小时前
如何用 bubbles 参数让自定义事件支持在 DOM 树中冒泡石榴树下的七彩鱼2 小时前
医疗票据OCR识别API实战:从医保结算单到结构化数据提取(附Python/Java示例)克里斯蒂亚诺更新2 小时前
mysql添加一个用户Greyson12 小时前
如何解决变异表报错_ORA-04091复合触发器COMPOUND应用Absurd5872 小时前
PHP怎么实现SAML单点登录_PHP企业级SSO解决方案【指南】JZC_xiaozhong2 小时前
连锁餐饮企业如何统一ERP、WMS、BOH多系统权限?一套可落地的IAM架构方案2301_796588502 小时前
PHP源码能否在无盘工作站运行_网络启动硬件要求【说明】