我正在尝试创建一个iOS社交应用程序,用户可以在该应用程序中发布并喜欢。
我制作了该应用,并且新闻提要通过以下因素加载帖子:
所以最喜欢的帖子在顶部。
我也在使用分页,因此如果用户向下滚动它会加载更多帖子。
问题是,如果同时加载帖子,则某些帖子获得了更多的赞,那么它可能返回不正确的排序,并且结果中可能缺少一些帖子。
例如,在这种情况下,分页仅加载2个帖子。
完整的数据库:
POST A: 10 likes
POST B: 8 likes
POST C: 7 likes
POST D: 6 likes
打开应用
该应用程序加载以下数据:
POST A: 10 likes
POST B: 8 likes
让我们假设POST C
同时获得了+10的点赞
(最新帖子为B)
在加载更多2条帖子后,该应用具有以下数据:
POST A: 10 likes
POST B: 8 likes
POST D: 6 likes
我该如何解决?
答案 0 :(得分:1)
如果您正在加载记录并且它们可以同时更改,那么也许这不是最佳方法。因为POST C在获得+10个赞之后将是赢家,所以它将不会在第二次加载中显示。
可以这样显示它吗?
如果为正,则可以按日期,喜欢而不是仅按喜欢对查询进行排序。因为,如果您的前提是将其显示为“喜欢排序”,则您不能假定值可以同时更改。实现此目的的唯一方法是加载所有排名一次,然后在记录之间进行分页,同时没有任何更改问题。