小程序列表页开发

在一些情况下,小程序列表页不适合使用翻页获取数据展示,拿发贴子的例子来说:

问题1:页面上拉获取更多数据时,可能出现数据重复

假如数据库有50条数据,第一次进来取最新的10条展示,然后此时别人新发了2条贴子,

那你再去上拉获取第二页,会再次取到上次10条里的最后2条,因为此时这2条已经成了第二页开头的两条记录,那么页面就会展示重复的两条记录;

 

问题2:页面上拉获取更多数据时,新旧数据展示顺序可能发生错乱

还是拿上个例子来说,如果第一次进来取了最新的10条展示,在你上拉前,此时别人已经发了100条贴子,那你再去上拉加载第二页,得到的就是最新100条里的第11到20条,那么发表时间更新的数据将会展示在历史数据后面(不符合逻辑,应该最上面展示最新的数据)

 

解决办法思路

我们列表页一般都是倒序显示

1.刚进入页面,获取前10条,并将最大的id和最小的id保存起来

  • maxid (用于下拉刷新)

  • minid (用于上拉加载更多)

    小程序列表页开发

2.假如上拉加载,将minid传到后台,获取id小于minid的最前10条,追加到原来10条后

  • 并将minid更新为当前10条的最小id

3.假如下拉刷新,将maxid传到后台,获取id大于maxid的所有数据,插入到原来10条前

  • 并将maxid更新为当前的最大id

4.对于下拉刷新,假如短时间就会产生大量数据,那么就不便将新数据全部取回来,可以简单点

  • 直接取最新的10条记录,覆盖页面数据展示即可,更新最小minid

  • 再通过上拉去加载新数据

 

 

相关文章