2

HTML5 postMesssage API允许在 window opener 和 openee 之间发送消息。但是,它需要参考/链接到接收器窗口。

是否有一种纯客户端 JavaScript 方式向所有窗口订阅者广播事件,在相同的域名下,由用户(例如重复选项卡)相同的会话打开,无需服务器的帮助?

目前,我想出一些想法

  • 服务器端通道(通过 $_SESSION)和轮询
  • JS Cooking 更新和轮询(硬饼干玩)
  • 本地存储更新和轮询(甚至最差)
  • WebRTC?(浏览器支持差)

有没有我错过的 API?

顺便说一句,不需要跨域。我正在考虑同一个域,由用户多次打开。

4

1 回答 1

1

为谁寻找变通解决方案。

我最终使用window.localStorage(甚至没有 sessionStorage)并使用 onstorage 触发我的事件处理程序。

某些浏览器(嗯,我的意思是 IE)上的会话隔离存在一些问题,即 sessionStorage 上的更改可能会或可能不会发送到另一个窗口。同时 localStorage 做得更好。

于 2013-10-30T01:10:28.010 回答