老师我想请教一个问题,

来源:3-8 客户端封装Recycler-2

慕用1394343

2019-03-28

这个问题跟课程无关哈。。只是我不懂的一个问题,就是关于微博的刷新,每一秒都有很多新的微博发出,每次刷新都会抓去16条微博,这个怎么去做的呢?问题如下:
        假如服务端有32条新微博,那我客户端第一次刷新16条,这个怎么去服务端拿? 第一次拿了16条,第二次刷新的时候可以做到服务端查数据的时候,不去查上次已经刷新过的数据吗? 
     这种问题搜不到,所以只有来请教老师了,不是课程问题,麻烦老师解惑了

写回答

1回答

Qiujuer

2019-03-29

说实话,其实这种数据刷新有很多种策略;最常见的是在后台和客户端的维护下,维持一种类似于环形的结构;这种结构就是怎么刷都刷不完。

那么还有一种就是

  1. 下拉刷新是请求最热的接口

  2. 上滑加载更多则是加载历史数据

这样做的前提是数据量较多,那就不容易重复;目前微博的量本身就很大,每时每刻都在新增数据,所以他们的下拉刷新基本上可以满足直接请求最热最新的数据就好;上滑加载更多则根据请求的页数递增就好。

如果数据量本身少,比如你说的32条;一次16条。此时我们请求接口,拿到页码1,下次无论上滑加载更多还是下拉刷新都是递增:下次我就带上2上去,那就是第二页的数据了,但是这样有个问题那就是数据没有第3页,此时我在拿2页的时候服务器会携带回来下一页是:1;OK下次请求我就携带1上去,这样就是无论下拉刷新,还是上滑滚动都是无限的,虽然数据会重复,但是与最近一页不重复。

只要页码在10页以上用户的感知就不会太明显。


0
0

手把手开发完整的即时通讯App 客户端+服务端+MVP架构

客户端+服务端+MVP架构+封装思想+主流框架

1755 学习 · 874 问题

查看课程