请教一个关于分页的问题
发布于 9天前 作者 hpgt 248 次浏览 来自 问答

做app接口的时候你们的分页是按照页码分还是按照时间分?我们移动开发的说要按时间分,原因是如果用户在某一页产时间停留,如果翻下一页的的话可能会看到前一页的内容,因为内容一直在更新,前一页的可能完全被最新内容占用,所以下一页就看到的是前一页的内容

17 回复

看需求了,百度贴吧就是按页码分的

@SoaringTiger 这个我倒是看了,更新快的贴吧翻下一页都不知道是更新多少遍的内容了

@SoaringTiger APP不一样,只有下一页,没有上一页,按时间分有点复杂

主要看用户的思维,用户想看到什么,就呈现什么,😊

如果你更新很快的话,就要换一种方式去思考了 用刷新(下拉)和加载更多(上拉)的方式去做。 高效的方法是按 id 去分(除非时间是可更新的,否则 id 等于时间。),一般是倒序,在当前页,有一个最大 id, 和一个最小 id ,加载更多就是载入 比最小id小的纪录, where id < 最小id order by id desc limit 10。刷新就是 where id > 最大id 。。。截入后就会有新的 最大和最小id。 这样速度和界面效果应该是最理想的,目前很多 app 都是这么整的,cnodejs 也是这样的逻辑。

@klesh mongodb的id可以排序,mysql也只能按时间排了

如果有mysql有自增长id也是可以的吧

@hpgt mysql 怎么只能按时间排? 不是有个 auto_increment 吗? 所有的关系数据库都有支持自增ID。

@klesh 但是原本没用自增id,现在加也晚了

@hpgt 你们的数据库设计是傻逼吗

@hpgt 这个太神奇了,那怎么区分不同的行?用什么作主键?

一般用自增列作为主键是最佳实践,换句话说,用自增ID作为主键适用于大多数的场景。如果你们的应用很特殊的话那另当别论。 但若主键都没有,这就有点奇幻色彩了。

另外,自增列是可以追加的。

这个是看你的数据是时效性大不大吧.要是像微博之类的更新比较频发的就最好用时间分隔的方法来分页,也可以考虑一个现在微博网页版的做法,就是先以时间排序来分大页,之后在这些大页上再按时间分来页

@captainblue2013 第一个版本好像是外包的,后来自己人做了,一直沿用

@klesh 使用uuid做主键的

@kenshinhu 我觉得这个方法可行,也是我目前想到的方法

@hpgt 去吧!少年!快快去创造奇迹!!!

@hpgt 这还沿用就是磨洋工了,数据库弄一下也不用多久,找个夜深人静的通宵就行了

回到顶部