在单页Web应用程序中处理服务器上的数据更改

时间:2017-07-29 21:30:28

标签: angular reactjs single-page-application data-synchronization

假设我们正在构建单页论坛应用。许多用户可以随时发布新帖子。 单页应用程序如何知道服务器上的数据已更改(即已添加新帖子)。

它可以定期从服务器请求新数据,但效率很低,在Firebase中您可以非常简单地同步数据,只需添加一个回调函数,在数据发生变化时调用该函数。

我不确定这是通常在单页网页应用中实现的方式(如果不是这样的话,为什么不这样做)。 This是我发现的唯一一个类似的库。但同样,它并不完全是我想要的。在该示例中,服务器仅通知客户端数据已更改,但客户端必须请求数据并等待响应...这比仅在数据发生更改时接收JSON效率低。

当有人回答这个问题时,我会立即看到答案,无需刷新页面。它是如何做到的,它是定期请求新数据,还是服务器只是在有新数据时发送新数据?或者只是通知客户端和客户端而不是请求新数据?

1 个答案:

答案 0 :(得分:1)

看看socket.io

  

Socket.IO支持实时双向基于事件的通信。   它适用于所有平台,浏览器或设备,同样关注可靠性和速度。

在服务器上,您将设置套​​接字并使用socket.emit(eventName[, ...args][, ack])发出客户端可以侦听的事件。

在客户端上,您将设置套​​接字并使用socket.on(eventName, callback)通过回调更新客户端应用程序。