【问题标题】:How to do pagination for API results when my results are limited?当我的结果有限时,如何对 API 结果进行分页?
【发布时间】:2016-12-08 06:50:02
【问题描述】:

我正在使用food2fork target="_blank" API 将搜索结果加载到页面上。但是,当我尝试进行分页时遇到了问题。我一次只能得到 30 个结果,而且我也不知道如何找出可能的搜索结果总数。有谁知道我如何为此实现分页,或者是否有可能?

我用 angular + node 构建了这个,托管在 heroku 上,如果这有什么不同的话。

(现在我对其进行了限制,以便用户最多可以搜索三页所需的搜索,但它是硬编码到网站中的,因此对于提供多于或少于 3 页结果的搜索是有问题的。我只能有“上一个”和“下一个”按钮,但我觉得这也有限制。)

【问题讨论】:

    标签: javascript angularjs api pagination


    【解决方案1】:

    如文档中所说:

    页面(仅限搜索)

    任何请求都将返回最多 30 个结果。要获得下一组结果,请再次发送相同的请求,但 page = 2 如果省略,默认为 page = 1

    如果你想获取从 31 到 60 的结果,你需要在请求中传递page=2。 API 似乎没有提供结果的总数。

    我不订阅@Arashsoft 提案。它实际上违背了分页的目的,即加载完整的结果集。如果你有成千上万的食谱,会有什么表现?

    但使用这个简单的 API,您可以实现 infinite scrolling 等实例。

    【讨论】:

    • 我刚刚回答了 OP 问题。他想知道结果的总数,而对于那个 API,我想到的唯一解决方案是循环调用 API :)
    • 似乎找出结果总数的唯一方法是按照@Arashoft 的建议进行操作,但是,正如您所说,这确实违背了分页的目的并会影响速度。我没有想到无限滚动,这似乎是我想要的一个很好的选择。谢谢!
    【解决方案2】:

    如果您无法从 API 中获得超过 30 个结果,我建议您循环调用 API,直到获得所有数据(30、60、90,...)。然后,您可以轻松地为您的最终用户分页。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-06-24
      • 1970-01-01
      • 1970-01-01
      • 2018-10-31
      • 1970-01-01
      • 1970-01-01
      • 2018-08-20
      相关资源
      最近更新 更多