在单页 Web 应用程序中处理服务器上的数据更改
Dealing with data changes on server in single page web apps
假设我们正在构建一个单页论坛应用程序。许多用户可以随时 post 新建 post。
单页应用程序如何知道服务器上的数据已更改(即已添加新的 post)。
它可以定期从服务器请求新数据,但效率低下,在 Firebase 中,您同步数据非常简单,您只需添加一个回调函数,当数据发生变化时调用该函数。
我不确定这是在单页网络应用程序中通常实现的方式(如果不是,为什么不这样做)。 This 是我发现的唯一一个做类似事情的库。但是,这又不是我想要的。在该示例中,服务器只是通知客户端数据已更改,但随后客户端必须请求数据并等待响应...这比在数据更改时仅接收 JSON 效率低.
当有人回答这个问题时,我会立即看到答案,无需刷新页面。它是如何做到的,它是定期请求新数据,还是服务器只是在有新数据时发送新数据?还是只是通知客户端和客户端而不是请求新数据?
看看socket.io。
Socket.IO enables real-time bidirectional event-based communication.
It works on every platform, browser or device, focusing equally on reliability and speed.
在服务器上,您将设置套接字并使用 socket.emit(eventName[, ...args][, ack]) 发出客户端可以侦听的事件。
在客户端上,您将设置一个套接字并使用 socket.on(eventName, callback) 通过回调更新您的客户端应用程序。
假设我们正在构建一个单页论坛应用程序。许多用户可以随时 post 新建 post。 单页应用程序如何知道服务器上的数据已更改(即已添加新的 post)。
它可以定期从服务器请求新数据,但效率低下,在 Firebase 中,您同步数据非常简单,您只需添加一个回调函数,当数据发生变化时调用该函数。
我不确定这是在单页网络应用程序中通常实现的方式(如果不是,为什么不这样做)。 This 是我发现的唯一一个做类似事情的库。但是,这又不是我想要的。在该示例中,服务器只是通知客户端数据已更改,但随后客户端必须请求数据并等待响应...这比在数据更改时仅接收 JSON 效率低.
当有人回答这个问题时,我会立即看到答案,无需刷新页面。它是如何做到的,它是定期请求新数据,还是服务器只是在有新数据时发送新数据?还是只是通知客户端和客户端而不是请求新数据?
看看socket.io。
Socket.IO enables real-time bidirectional event-based communication. It works on every platform, browser or device, focusing equally on reliability and speed.
在服务器上,您将设置套接字并使用 socket.emit(eventName[, ...args][, ack]) 发出客户端可以侦听的事件。
在客户端上,您将设置一个套接字并使用 socket.on(eventName, callback) 通过回调更新您的客户端应用程序。