1

我必须开发一个程序,我需要从服务器获取事件并想要更新网页。

例如,我为聊天打开了多个浏览器选项卡,每个聊天页面都有自己的线程来从服务器获取事件,但是一旦聊天中的一个线程将获取事件,而不是其他线程获取空的事件堆栈,因为另一个聊天提取页。

所以,我关心的是在不刷新页面的情况下与多个聊天页面共享事件。

4

2 回答 2

3

听起来您可以使用postMessage让获取消息的选项卡与您域中的所有其他页面共享。

postMessage(JSON.stringify({chatmsg: someVarFromServer}), "http://www.mydomain.com");

让其他聊天页面监听message事件:

window.addEventListener("message", receiveMessage, false);

function receiveMessage(event) {
    // reject foreign messages!
    if (event.origin !== "http://www.mydomain.com") return;

    var message = JSON.parse(event.data).chatmsg;

    // this other page now has the message
}
于 2012-06-04T18:06:45.050 回答
0

如果您想开发一个用纯 Javascript 编写的实时聊天应用程序,我强烈推荐APE(编辑:2021 似乎不再维护),这是实现此类目标的可靠起点。
如果您不想使用框架,这里有 2 个跨浏览器解决方案:

  • 通过定期发送 AJAX 请求来检查事件
  • 使用第三方应用程序接收事件,例如 Flash 的 XML 套接字
于 2012-06-04T18:24:27.030 回答