繁体   English   中英

如何使用Javascript从API获得大响应的一部分?

[英]How can I get portions of a big response from an API using Javascript?

我有一个很大的API请求,大约有1000个结果。 由于此请求太大,我需要将响应分成几个部分,因此速度更快。 我想查询1000个结果,但是要像客户端一样传输数据

在API请求中,您不允许放置任何参数,因此您可以检索全部帖子。 响应是一个与Wordpress基本相同的JSON(但不是Wordpress)

我已经尝试了10到10个结果中的相同请求,但是我必须做几个查询才能达到预期的性能。

我想从1000个结果中得到一个请求。

    fetch(api)
    .then((data) => ...)
    .then((data) => {
        //When loaded first 10 records show
        //When loaded next 10 records show
        ...
        // Until the 1000
    })

有什么办法可以实现?

后端可以通过多种方式实现流/分页,而JS答案取决于您查询的后端支持哪种方式。

  • 通过请求参数分页
  • HTTP范围请求(如何在线播放允许搜索的电影)
  • Websocket流式传输(网络游戏如何在玩家获得实时更新的地方工作)

因为您提到您要在评论中查询Wordpress,所以在这里我将举一个Wordpress示例,但是其他API可能具有不同的处理流/分页的方式。

WordPress API支持分页,如下所示:

https://developer.wordpress.org/rest-api/using-the-rest-api/pagination/

您需要做的是专门请求具有偏移量的页面以获取那部分结果,例如:

 /wp/v2/posts?per_page=100&offset=1000

这将在帖子#1000之后获得帖子列表,其中每个页面有100个结果。

对于其他API,您需要为我们提供更多详细信息,以确定如何流式传输结果。

了解您如何获得结果非常重要。 例如,如果您正在使用流式传输,则数据是同时传输的,您将不必处理此类问题。

您可以查看下面的链接以获取后端数据流。

WebSocket协议使Web客户端(例如浏览器)和Web服务器之间的交互具有较低的开销,从而促进了往返于服务器的实时数据传输。

参考

最后,我所做的工作是在不同页面的许多查询中检索到的,数据表逐渐被新查询中的新记录更新

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM