【问题标题】:how to update retrieved data in the front-end when data is updated in the database?当数据库中的数据更新时,如何在前端更新检索到的数据?
【发布时间】:2018-06-24 21:47:36
【问题描述】:

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

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

然而,这似乎非常低效,因为在某些极端情况下,用户可能已经堆积了数百个帖子,而且很可能只需要更新很少或不需要更新的帖子。发出数百个数据库请求可能会产生巨大的开销。

【问题讨论】:

    标签: mysql rest mobile lamp


    【解决方案1】:

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

    1. 长轮询

      • 客户端向服务器请求新信息。
      • 服务器保持连接打开,直到有一些新数据要发送。
      • 服务器获取数据后,将其发送给客户端并关闭连接。
      • 然后客户端发送一个新的信息请求。
      • 这是一个持续的过程。
    2. WebSocket

      • 创建一个 websocket 连接,保持打开状态。
      • 服务器会在更新到来时推送它们。

    两种情况都有问题

    • 可能需要大量时间才能实现生产就绪。
    • 它们都需要服务器知道数据库中的任何变化。这也很棘手

    【讨论】:

      猜你喜欢
      • 2018-04-05
      • 2013-07-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-28
      • 2022-01-18
      • 1970-01-01
      相关资源
      最近更新 更多