Timeline形式API简述
Timeline英文原版文档(Twitter)
问题起因:假设有10条微博,每页5条,正常情况下两页完成浏览。
然而,微博内容不断更新的情况下,当你看完第一页内容时,更新了两条内容11和12。此时,当你翻到第二页时,看到的就会是第三到第七条内容。如果更新的内容超过五条,将会出现非常尴尬的情况。
解决方法:每次请求内容时根据内容id相对定位,而不是相对于列表顶部绝对定位。
(1)添加max_id参数
第一次请求时,记录最低的内容ID,将此ID最为max_id参数传递给下一个请求,服务端将只返回ID低于max_id的内容。注意,当返回内容id包含max_id时,该条内容会再次返回。
实际情况下,应该将max_id - 1 作为下一页返回的第一条内容的id
(2)添加since_id参数
假设我们已经处理了10条数据,现在数据更新到了第18条,当我们下滑请求最新内容时,服务端第一页将返回第14到第18条内容,而第二此请求则会返回第9到第13条内容,但是第9条和第10条我们之前已经处理过了,这样就出现了重复处理同一条内容的情况,降低了效率。
通过设置since_id参数我们可以避免这种情况发生。将since_id设定为我们已经处理过的微博的最大ID,移动端发送请求时,服务端只返回id大于since_id的微博内容。
1.特点:适合手机端操作,下滑时直接获取最新内容,忽略中间内容。上滑时可按顺序依次加载内容。
2.参数
字段 |
必须 |
类型 |
最大长度 |
描述 |
max |
× |
integer |
- |
最大id |
since |
× |
integer |
- |
起始id |
count |
× |
integer |
- |
每次加载条数 |
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。