无限滚动实时数据

Vik*_*dav 7 javascript rest frontend infinite-scroll

我试图在Web应用程序中实现无限滚动,可以从服务器添加或删除记录,按照其id的字母顺序排序,相关数据也可以随时更改,我必须显示最新数据.我理解无限滚动如何工作以及如何显示固定对象集的最新数据(在我的情况下,重复轮询并在视图中转储数据),但我无法理解如何集成两者.API使用游标并每次向我发送20条记录.请帮忙

Osk*_*kar 6

我想我明白你主要关心的是什么。无限滚动和实时更新是很难实现的。你必须仔细思考并弄清楚你真正想要实现的目标是什么。有几种情况需要考虑,为了简化,我们假设我们使用带有行的网格:

  1. 可见行已更改(编辑)
  2. 在可见行之间添加了新行(添加)
  3. 现有行已从可见行中删除(删除)
  4. 加载的行已更改(编辑)
  5. 在先前加载的行之间添加了一个新行,但它们不可见 - 我们向下滚动(添加)
  6. 现有行已从加载的行中删除(删除)
  7. 未加载行的任何更改都是微不足道的 - 因为我们仍然需要加载它

我认为这里最大的问题是对已加载但不可见的行进行操作。用户将看不到所做的任何更改。既然如此,你考虑过虚拟滚动吗?因此仅显示 10 行,并在用户向上/向下滚动时替换它们。如果您确实想要无限滚动,最好的方法是通知用户数据已更改,并且您必须重新渲染整个无限滚动。在这种情况下,用户决定刷新已加载的数据。您可以抓取可见的内容并尝试计算向他显示的内容(以反映添加/删除/编辑的行的先前状态)