分页通过一定的排序方式,返回对应下标的数据,从而解决了一次性返回大量数据的问题。使用返回开始下标(offset)和数据条数(limit)的分页方式,数据不随时间变化的情况下是没有问题的。
不过在实时类网站中,在你浏览当前页面数据的时候,可能又产生了很多新的数据,当你点击下一页时,浏览器返回的下标已经不能代表浏览器想请求的数据。
这种情况下,更适合用实时分页的方式来处理。
实时分页处理方式是,多返回一个参数: max_id(这种情况需要写入数据时id是递增的),后面的查询以当前的max_id为准,要求id小于等于这个值,避免新数据对分页的干扰。在首次请求的时候,没有max_id,直接找到当前时间的最大id。
这种情况有个问题是应用程序主动无刷新获取新数据的时候,可能会有数据会重复给出来。
这种情况下需再增加一个参数: since_id, 用于标记处理新数据前处理过的最大的id,更新新数据时,id需要大于这个,这样就不会有重复的数据展示
文章来自: https://developer.twitter.com/en/docs/tweets/timelines/guides/working-with-timelines