You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无offset支持时,如何用page和perPage实现API分页加载?

用page和perPage实现无offset的增量加载(单次请求方案)

核心思路是通过计算目标条目范围,调整page和perPage参数让单次API请求覆盖所需的新条目,再在前端过滤掉已加载的内容。以下针对你的场景(初始8条,每次加载10条新条目)给出具体实现:

先明确API分页规则(关键前提)

首先要确认API的分页逻辑,常见两种:

  • 页码式分页:page=N表示第N页,每页perPage条,第N页的条目范围是 (N-1)*perPage + 1 到 N*perPage(例:perPage=10时,page=1返回1-10条,page=2返回11-20条)
  • 偏移式分页(page伪装offset):page=N表示跳过N*perPage条,返回接下来的perPage条(例:perPage=10时,page=0返回1-10条,page=1返回11-20条)

针对你的场景的具体实现

场景1:API为页码式分页

  1. 第一次加载(需获取9-18条):
    目标条目覆盖第1页(1-10)和第2页(11-20)的部分内容。直接请求 page=1&perPage=18,API会返回1-18条完整数据,前端过滤掉前8条已加载内容,即可得到9-18条。
  2. 第二次加载(需获取19-28条):
    此时已加载总条目数为18,请求 page=1&perPage=28,API返回1-28条,过滤前18条后得到19-28条。
  3. 后续加载:
    每次计算当前已加载总条目数loadedCount,目标结束位置为loadedCount + 10,请求 page=1&perPage=loadedCount+10,过滤前loadedCount条即可。

场景2:API为偏移式分页

逻辑和页码式类似,只是请求参数调整为page=0&perPage=loadedCount+10,API返回从第1条到第loadedCount+10条的内容,前端过滤前loadedCount条,直接取后面10条新内容。


注意事项

  • 如果API对perPage有最大值限制(比如最多允许50条),当loadedCount+10超过这个限制时,该方案无法单次完成请求,此时只能拆分请求或和后端协商调整API限制。
  • 前端需准确记录已加载的总条目数,避免重复过滤或漏加载。

内容的提问来源于stack exchange,提问作者user2526590

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 19:01:40