用于分页的保留属性名

2018-02-24 15:12 更新

下面的属性位于_data_对象中,用来给一列数据分页。一些语言和概念是从OpenSearch规范中借鉴过来的。

下面的分页数据允许各种风格的分页,包括:

  • 上一页/下一页 - 允许用户在列表中前进和后退,一次一页。nextLink 和_previousLink_属性 (下面的"链接保留属性名"部分有描述) 用于这种风格的分页。
  • 基于索引的分页 - 允许用户直接跳到条目列表的某个条目位置。例如,要从第200个条目开始载入10个新的条目,开发者可以给用户提供一个URL的查询字符串?startIndex=200
  • 基于页面的分页 - 允许用户直接跳到条目内的具体页。这跟基于索引的分页很类似,但节省了开发者额外的步骤,不需再为新一页的条目计算条目索引。例如,开发人员可以直接跳到第20页,而不是跳到第200条条目。基于页面分页的网址,可以使用查询字符串_?page=1?page=20_。_pageIndex_和 totalPages 属性用作这种风格的分页.

在这份指南的最后可以找到如何使用这些属性来实现分页的例子。

data.currentItemCount

属性值类型: 整数(integer)
父节点: data

结果集中的条目数目。应该与items.length相等,并作为一个便利属性提供。例如,假设开发者请求一组搜索条目,并且要求每页10条。查询集共有14条。第一个条目页将会有10个条目,因此_itemsPerPage_和_currentItemCount_都应该等于10。下一页的条目还剩下4条;_itemsPerPage_仍然是10,但是_currentItemCount_是4.

示例:

{
  "data": {
    // "itemsPerPage" 不需要与 "currentItemCount" 匹配
    "itemsPerPage": 10,
    "currentItemCount": 4
  }
}

data.itemsPerPage

属性值类型: 整数(integer)
父节点: data

items结果的数目。未必是data.items数组的大小;如果我们查看的是最后一页,data.items的大小可能小于itemsPerPage。但是,data.items的大小不应超过itemsPerPage

示例:

{
  "data": {
    "itemsPerPage": 10
  }
}

data.startIndex

属性值类型: 整数(integer)
父节点: data

data.items中第一个条目的索引。为了一致,_startIndex_应从1开始。例如,第一组items中第一条的_startIndex_应该是1。如果用户请求下一组数据,_startIndex_可能是10。

示例:

{
  "data": {
    "startIndex": 1
  }
}

data.totalItemsx

属性值类型: 整数(integer)
父节点: data

当前集合中可用的总条目数。例如,如果用户有100篇博客文章,响应可能只包含10篇,但是_totalItems_应该是100。

示例:

{
  "data": {
    "totalItems": 100
  }
}

data.pagingLinkTemplate

属性值类型: 字符串(string)
父节点: data

URL模板指出用户可以如何计算随后的分页链接。URL模板中也包含一些保留变量名:表示要载入的条目的{index},和要载入的页面的{pageIndex}

示例:

{
  "data": {
    "pagingLinkTemplate": "http://www.google.com/search/hl=en&q=chicago+style+pizza&start={index}&sa=N"
  }
}

data.pageIndex

属性值类型: 整数(integer)
父节点: data

条目的当前页索引。为了一致,_pageIndex_应从1开始。例如,第一页的_pageIndex_是1。_pageIndex_也可以通过基于条目的分页而计算出来pageIndex = floor(startIndex / itemsPerPage) + 1

示例:

{
  "data": {
    "pageIndex": 1
  }
}

data.totalPages

属性值类型: 整数(integer)
父节点: data

当前结果集中的总页数。_totalPages_也可以通过上面基于条目的分页属性计算出来: totalPages = ceiling(totalItems / itemsPerPage).

示例:

{
  "data": {
    "totalPages": 50
  }
}
以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号