HTML5 postMesssage API允许在打开窗口和打开窗口之间发送消息。但是,它需要参考/链接到接收器窗口。
是否有一种纯粹的客户端JavaScript方式可以在没有服务器帮助的情况下,在相同的doaminame下,由用户(例如Duplicate Tab)打开相同的会话,向所有窗口订阅者广播事件?
目前,我提出了一些想法
- 服务器端通道(通过$_SESSION)和轮询
- JS Cooking更新和轮询(硬饼干播放)
- 本地存储更新和轮询(甚至是最糟糕的)
- WebRTC?(浏览器支持较差)
有没有遗漏API?
顺便说一句,不需要跨域。我想的是同一个域,多个由用户打开。
为谁寻找变通解决方案。
我最终使用window.localStorage(甚至不是sessionStorage),并使用onstorage触发器作为事件处理程序。
某些浏览器(嗯,我指的是IE)上的会话隔离存在一些问题,sessionStorage上的更改可能会也可能不会发送到另一个窗口。同时localStorage做得更好。