借鉴大佬:https://blog.csdn.net/qq_41460383/article/details/129712122
问题描述:实现滚动查询的方法 queryBlogOfFollow
中,关于 offset 计算有问题,下面的 os
变量只记录了单页数据中最后一个 score 的重复次数,并不能作为 下次查询的 offset
如果数据如下:
测试结果:
出现错误:元素重复
原因:在读第三页时,偏移量应该为3(因为在读第三页时与31相同的元素个数为3),注意:如果当前页最后一条数据的 score 与上一页最后一条数据的 score 相同,则下一页的 offset 就是上一页的 offset + 当前页最后一个 score 的重复次数
解决办法:在上述代码末尾添加如下内容
os = minTime == max ? os + offset : os;
改正后的测试结果:
正确。