2013-11-15 61 views
1

窗口之间发送数据,我的目标是让情况如下:我想知道是否有可能使用Node.js的

1) User opens myapp.com in Window A 
2) User clicks button which opens myapp.com/doWork in Window B 
3) After performing some operations and retrieving data (requiring user input), Window B closes 
4) Window A displays the data retrieved from Window B 

这可能使用Node.js的?我意识到一个更简单的解决方案就是只需在一个窗口中完成所有操作。我正在使用快递/句柄。

+0

使用postMessage – moka

回答

2

您应该查看Socket.io,它可以在您的Node.js服务器和所有浏览您的网页的客户端之间进行实时通信。

在您的特殊情况下,在窗口B关闭之前,服务器应该使用新数据向客户端发送消息。客户端代码然后将能够用新信息更新网页。

如果您正在寻找准系统解决方案,请查看WebSockets API(Socket.io摘要)。如果你想使用为实时应用程序构建的完整框架,请查看Meteor(显然,这将需要更多的代码修改)。

1

实际上你不需要在服务器上完成它。
据我所见,你的两个窗口在同一个主机/域上打开(包括同一个端口和子域)

这意味着两个窗口都可以在客户端与对方进行“对话”。
windowB拥有window.opener属性。

所以在windowB中发生了什么,随时你可以告诉windowA发生了什么,就像这样。

在窗口B

window.opener.setData(myResult); // window.opener == windowA 

window.opener.myGlobalNamespaceObject.property = myResult 

另一个解决方案是使用cookie,或者localStorage的了点。
其实localStorage的触发事件,当数据已经设置(见这个问题:localStorage eventHandler Doesn't Get Called

,如果你不共享同一个域中socket.io去为对方的回答指出。

+0

如果您对它进行编辑以使用适当的大写字母和句子,您会得到一个很好的答案。 – WiredPrairie

相关问题