Timeline形式API简述

Timeline英文原版文档(Twitter)

问题起因:假设有10条微博,每页5条,正常情况下两页完成浏览。

image

然而,微博内容不断更新的情况下,当你看完第一页内容时,更新了两条内容11和12。此时,当你翻到第二页时,看到的就会是第三到第七条内容。如果更新的内容超过五条,将会出现非常尴尬的情况。

image

解决方法:每次请求内容时根据内容id相对定位,而不是相对于列表顶部绝对定位。
(1)添加max_id参数
第一次请求时,记录最低的内容ID,将此ID最为max_id参数传递给下一个请求,服务端将只返回ID低于max_id的内容。注意,当返回内容id包含max_id时,该条内容会再次返回。

image

实际情况下,应该将max_id - 1 作为下一页返回的第一条内容的id

image

(2)添加since_id参数
假设我们已经处理了10条数据,现在数据更新到了第18条,当我们下滑请求最新内容时,服务端第一页将返回第14到第18条内容,而第二此请求则会返回第9到第13条内容,但是第9条和第10条我们之前已经处理过了,这样就出现了重复处理同一条内容的情况,降低了效率。

image

通过设置since_id参数我们可以避免这种情况发生。将since_id设定为我们已经处理过的微博的最大ID,移动端发送请求时,服务端只返回id大于since_id的微博内容。

image

1.特点:适合手机端操作,下滑时直接获取最新内容,忽略中间内容。上滑时可按顺序依次加载内容。

2.参数

字段 必须 类型 最大长度 描述
max × integer - 最大id
since × integer - 起始id
count × integer - 每次加载条数

白菜1031
5.4k 声望1.6k 粉丝