在数据库中更新数据时,如何在前端更新检索到的数据?

时间:2018-06-24 21:47:37

标签: mysql rest mobile lamp

我正在构建一个移动应用程序,其中UI上的下拉手势会启动对现有数据/帖子的更新(如果有的话,还会检索新的帖子,但这不是重点)。服务器是无状态的,意味着没有会话。

如果帖子已在数据库中更新,我如何让前端知道哪些帖子需要更新?我能想到的唯一方法是将所有检索到的帖子的ID列表发送到服务器,并让它检查自获取时间以来是否有任何帖子已被修改。

但是,这似乎很安静,效率低下,因为在某些极端情况下,用户可能堆积了数百个帖子,并且很可能只需要更新很少或不需要一个帖子。发出数百个数据库请求可能是巨大的开销。

1 个答案:

答案 0 :(得分:0)

至少有两种方法可以做到这一点

  1. 长轮询

    • 客户端向服务器请求新信息。
    • 服务器使连接保持打开状态,直到有新数据要发送为止。
    • 一旦服务器获取数据,它将数据发送到客户端并关闭连接。
    • 客户端然后发送新的信息请求。
    • 这是一个连续的过程。
  2. WebSockets

    • 创建一个websocket连接,使其保持打开状态。
    • 服务器会在更新出现时推送所有更新。

两种情况都存在问题

  • 可能需要花费大量时间来实现生产就绪的实施。
  • 它们两者都将要求服务器知道数据库中的任何更改。这也可能很棘手