做分页接口的时候,页码是从 0 开始还是从 1 开始?

2016-12-22 18:34:04 +08:00
 daben1990

我是倾向于从 1 开始,因为接口的定义,应该遵循可读性的原则

11808 次点击
所在节点    编程
14 条回复
passion336699
2016-12-22 18:44:04 +08:00
都差不多吧,看前端传当前页想不想-1😂
RE
2016-12-22 18:57:14 +08:00
语义化的角度来说当然是 1 代表第一页
adminsvv
2016-12-22 19:04:53 +08:00
0
DoraJDJ
2016-12-22 19:05:23 +08:00
以 1 代表第一页简单明了 +1

不过有些带分页的接口还允许负数存在,不知道他们为何要这么做...

举个栗子,页数为负数居然正常返回内容: http://www.im9.com/api/query.community.post.list.do?page_no=-1&community_id=1063&sort_type=1&captcha=e74260c18c7f894cb663393db8ad1919&ts=1467528301683
incompatible
2016-12-22 19:34:19 +08:00
肯定是要从 0 开始。至于把「第 0 页」原样显示还是显示为「第 1 页」,那是前端界面应该操心的问题。
yesicoo
2016-12-22 19:38:21 +08:00
pageNum = pageNum < 1 ? 1 : pageNum;
pageSize = pageSize < 1 ? 10 : pageSize;


Limit {(pageNum-1)*pageSize},{pageSize}
zhujinliang
2016-12-22 19:46:21 +08:00
从 1 开始, 0 = 1
DualWield
2016-12-22 19:47:44 +08:00
0
bdbai
2016-12-22 20:05:09 +08:00
@yesicoo 写 limit 的不用担心用户挖坑拖垮数据库么?
shiny
2016-12-22 20:06:49 +08:00
@bdbai 一般情况下可以限制最大页数,而且页数大了性能也不好。
daben1990
2016-12-22 21:46:51 +08:00
@DoraJDJ 这个真第一次见。。
RE
2016-12-22 22:44:45 +08:00
@incompatible 照你这么说,把 Page 1 转换成 Index 0 才是后端程序员该操心的事,脱离了代码, 1 就是 1 , 0 就是 0
incompatible
2016-12-22 23:59:28 +08:00
@RE 这跟前端程序员还是后端程序员无关,只跟 MVC 有关。显示成 1 还是 0 就是负责 View 的人应该做的事。
FrankFang128
2016-12-23 00:15:02 +08:00
从 0 开始的都是 offset ,跟页数两码事

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/329484

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX