最近忽然又想到了这个问题。
很多网站都会用 列表+分页 的方式来展现信息,手机端也有下拉加载(分页的另一种表现形态),但是分页的同时又会出现一个问题:第一页的某些条目,在第二页又出现了。 原因是点下一页之前有几条数据被新的数据顶到了第二页。
想问问看有没有什么好的方法可以解决这种问题,不论是前端还是后端。
1
yangg 2019-04-06 12:43:41 +08:00 via iPhone
拿最后一条的 ID 或者时间去不就好了
|
2
PHPJit 2019-04-06 12:43:56 +08:00 via Android
前端过滤去重
|
3
mscststs OP |
4
woodnaonly 2019-04-06 13:12:03 +08:00 via Android
@PHPJit 后端太菜丢给前端不可取
|
5
iConsLii 2019-04-06 13:14:51 +08:00 via Android
可以在第一页跳到第二页的时候,记录个最新的 ID 或者时间点,在后面几页都带上
|
6
kindjeff 2019-04-06 13:18:37 +08:00
|
7
ffeii 2019-04-06 13:26:23 +08:00 1
排序会实时变动的列表不适合分页
|
8
kltt22 2019-04-06 13:35:29 +08:00 via Android
起始 ID +数量
|
9
Vegetable 2019-04-06 13:55:58 +08:00
说用 id 的是搞笑呢?你这个起始 id 被顶到第一位怎么办?
这不是一个技术问题,而是设计问题.不用去纠结这个.就算是要纠结也是产品经理该纠结的事情. 看第一页的时候,第二页的某个帖子有人回复,那么我翻到第二页就看不到这个帖子了,同时看到了第一页的最后一个帖子. 极端情况下会出现翻到第二页发现和第一页的内容完全相同. 这是无法用技术解决的.只能从设计上就降低这个问题带来的影响,并且需要考虑的情况非常多.提高系统复杂度,造成用户学习困难. 这其实是一个非常常见的问题,但是一直也没有一个合理的解决办法,以至于大家都默认了这个状态是对的.并不是大家没有注意到问题,而是这真的没有合适的方案. 回复时间排序方案下,每一个帖子的索引顺序都是动态变化且毫无规律的,可能向前也可能向后.而用户看帖和翻页都是需要一定时间的.单向翻页没办法保证不出现重复和遗漏.任何尝试解决的方案都至少会打破排序规则和页面显示条数这两个限制中的一个. 所以干脆就不用回复时间排序,这并不是什么好的规则,只能说中规中矩.V 站作为一个社区就没有采用根据回复时间排序的规则,也挺好的. 信息流现在也不太使用时间排序了不是吗?都是推荐排序了.这可能也算你说的解决方案之一吧. |
10
tangweihua163 2019-04-06 15:01:40 +08:00
“加载更多” ???
|
11
akira 2019-04-06 20:42:51 +08:00
2l 的方案就是最简单的了。
后端的方案不是没有,但是都略重 |
12
night98 2019-04-07 04:32:57 +08:00 via Android
全部取缓存,定时任务刷新缓存,设定 30-120 秒时间刷
|
13
Ultraman 2019-06-21 08:12:51 +08:00
据观察小草就存在这个问题并且看起来没有被处理
|