我们的 api 目前是这样设计的
/users/?page=2&pre_page=20
客户端提交页数和每页的数量,服务端返回如下
{
"code": 0,
"pagination": {
"page": 1,
"limit": 20,
"total": 100
}
"data": {}
}
不过这样会出现数据重复或丢失。比如当前用户正在 app 翻页刷新,如果正好在后台删除了一条消息,那么就会因为数据变化导致分页时有一条数据丢失了。
后来想到一个解决方案,通过 cursor 分页
/users/?cursor=2015-01-01 15:20:30&limit=10
上面就可以解决 app 端翻页时数据出现变化的情况,不过依然会有 2 个严重的问题。
对于第一个问题,我们想到使用主键作为过滤条件(主键递增),可以解决重复的问题。但第二个问题似乎想不出什么好的办法。
不知道大家怎么处理分页问题,有好的建议或方案还望不吝赐教。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.