无页码分页,如何解决因排序变动导致的显示重复的问题?

image.png

最直观的解决方法就是在查询第二页数据时,排除掉已经加载数据的id,但感觉这种做法并不是很好。还有其他方法解决吗?

阅读 4.3k
4 个回答

想要保持一致性,就得牺牲点什么。
1.查询全部数据,前端分页。我觉得这是一种比较好的解决方案了。
2.加上一个变动时间字段,或者设置缓存,只能查询某一段时间内的数据,在一定时间之后在更新,这样或许更让人容易接受。时间越长,一致性越好,准确度就越低。
3.可以考虑加个过滤缓存什么的,但为每个客户都建立一个缓存感觉也挺麻烦的,而且分页会受到影响。
4.最后,吐槽下这种啥都想要的需求,一致性也需要,实时性也需要,就像多线程转单线程一样,牺牲的自然是效率。

这个问题我们在做系统时一般不考虑。

一是这种问题解释起来很好解释,客户一般都会理解。

二是一般查数据报表数据不会经常变动。

三是如果真的是经常变动,客户也不同意这种使用方式,那么最好的方法是重新设计查询的逻辑。

为什么第二页排序会突然变动?解决问题还是得分析问题产生原因。

按照用户短暂存储以下两种

  1. 内容曝光数据
  2. 内容阅读数据

排序显示的逻辑可以按照以下次序来做:

  1. 获取列表
  2. 过滤曝光和阅读数据
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题