无限加载

虽然使用过很多的feed流产品了,但是无限加载这个名词还是第一次听
概念

分析朋友圈分页,按照时间倒序查10条,查出来数据后按照权限过滤,比如什么拉黑,删除等等,这样的话,返回给客户端的数据和分页数量不一致,但是我个人认为应该是这样的,而不是把各种权限信息和动态表连接起来查询,然后可以返回固定数量的动态,大厂肯定不会这么做,权限信息和动态信息不是一个数量级,不能连表,微博也有佐证:

https://open.weibo.com/wiki/%E5%BE%AE%E6%9C%8D%E5%8A%A1%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98?sudaref=www.google.com
(5)有时某一页返回的数据要小于“count”指定的数量?
count是指每页返回的数量,比如设置为10条,当显示8条时是因为那两条被过滤掉了,再次访问又变成10条了,是因为索引数据库是动态的,它会将过滤掉的信息挤到下一页或者之后的页面。

明显的说了,查了10条,但是有2条被过滤掉了,还有下一条

(6)每页返回的微博数量总和与total_number不一致?
实际返回的结果数与total_num不符,这个现象是正常的。原因是索引中的数据都是入库时的原始数据,后端会返回命中的微博,但是前段会根据微博的实时状态进行过滤,比如有些微博被删除、命中敏感词、用户被封等。

再看另一个问题,需要实时刷新的数据如果按传统的分页肯定会出现两页有相同数据,所以需要id或者时间字段作为起始条件范围
同样看微博:

(8) 如何使用时间参数,尽量搜到最全数据?
结束时间参数的值指定为当前时间,起始时间无需指定,将按时间倒序分页返回1000条微博,再将第1000条微博的创建时间作为结束时间参数的值,起始时间无需指定,依次递推。

https://open.weibo.com/wiki/2/statuses/home_timeline
有max_id参数,若指定此参数,则返回ID小于或等于max_id的微博,默认为0

至于实际业务中按照哪个字段当范围,应该考虑该字段在数据库中的索引等,或者是在redis中的排序等

如果是redis中,如何分页,主要看怎么存储的
mysql中如何分页

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值