本文主要是介绍筋斗云接口编程 / 分页机制,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
分页机制
query操作默认支持分页(paging), 一般调用形式为
Ordr.query(_pagekey?, _pagesz?=20) -> {nextkey?, total?, @h, @d}参数:
- _pagesz: Integer. 页大小,默认为20条数据。
- _pagekey: String (一般是数值). 首次查询不用填写(或填0),而下次查询时应根据上次调用时返回数据的"nextkey"字段来填写。返回:
- nextkey: String (一般是数值). 用来取下一页数据时填写_pagekey字段,如果没有该字段,则说明已经是最后一页数据。
- total: Integer. 总记录数。仅当请求时指定 _pagekey=0 时返回。
- h/d: 实际数据表的头信息(header)和数据行(data),符合table对象的格式,参考上一章节tbl(id,name)介绍。
示例:
第一次查询
Ordr.query()
返回
{nextkey: 10800910, h: [id, ...], d: [...]}
要在首次查询时返回总记录数,则用_pagekey=0
:
Ordr.query(_pagekey=0)
这时返回
{nextkey: 10800910, total: 51, h: [id, ...], d: [...]}
第二次查询(下一页)
Ordr.query(_pagekey=10800910)
直到返回数据中不带”nextkey”属性,表示所有数据获取完毕。
[分页大小]
query接口的_pagesz
参数可以指定每页返回多少条数据,缺省是20条。为了后端性能与安全,默认限制了_pagesz
不可超过100条。如果想要指定更大的页大小,可以设置属性$maxPageSz
:
class MyObj extends AccessControl
{protected $maxPageSz = 1000; // 最大允许返回1000条// protected $maxPageSz = -1; // 最大允许返回 PAGE_SZ_LIMIT 条
}
常量PAGE_SZ_LIMIT定义了最大可以设置的值,目前是10000.
这篇关于筋斗云接口编程 / 分页机制的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!