我必须开发一个程序,我需要从服务器获取事件并想要更新网页。
例如,我为聊天打开了多个浏览器选项卡,每个聊天页面都有自己的线程来从服务器获取事件,但是一旦聊天中的一个线程将获取事件,而不是其他线程获取空的事件堆栈,因为另一个聊天提取页。
所以,我关心的是在不刷新页面的情况下与多个聊天页面共享事件。
我必须开发一个程序,我需要从服务器获取事件并想要更新网页。
例如,我为聊天打开了多个浏览器选项卡,每个聊天页面都有自己的线程来从服务器获取事件,但是一旦聊天中的一个线程将获取事件,而不是其他线程获取空的事件堆栈,因为另一个聊天提取页。
所以,我关心的是在不刷新页面的情况下与多个聊天页面共享事件。
听起来您可以使用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
}
如果您想开发一个用纯 Javascript 编写的实时聊天应用程序,我强烈推荐APE(编辑:2021 似乎不再维护),这是实现此类目标的可靠起点。
如果您不想使用框架,这里有 2 个跨浏览器解决方案: