我如何使用 Javascript 从 API 中获得部分大响应?
How can I get portions of a big response from an API using Javascript?
我有一个很大的 API 请求,它给我大约 1000 个结果。由于这个请求太大,我需要将响应分成几个部分,这样会更快。我想查询 1000 个结果,但数据流与客户端一起提供
在 API 请求中,您不允许输入任何参数,因此您检索了全部帖子。响应是 JSON 与 Wordpress 基本相同(但它不是 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
})
有什么方法可以实现吗?
后端可以通过多种方式实现 streaming/pagination,JS 答案取决于您查询的后端支持哪种方式。
- 通过请求参数分页
- HTTP 范围请求(如何在允许搜索的情况下流式传输在线电影)
- Websocket 流式传输(网页游戏如何让玩家获得实时更新)
因为您在评论中提到您正在查询 Wordpress,所以我将在此举一个 Wordpress 的示例,但其他 API 可能有不同的处理方式 streaming/pagination。
WordPress API 支持分页,如下所述:
https://developer.wordpress.org/rest-api/using-the-rest-api/pagination/
您需要做的是专门请求一个带有偏移量的页面来获取那部分结果,如下所示:
/wp/v2/posts?per_page=100&offset=1000
这将在 post #1000 之后获取 post 的列表,其中每个页面有 100 个结果。
对于其他 API,您需要提供更多详细信息,以便我们确定如何流式传输结果。
了解您如何获得结果非常重要。例如,如果你使用流式传输,数据是同时到来的,你就不必处理这类问题。
您可以查看以下链接以获取后端数据流。
The WebSocket protocol enables interaction between a web client (such as a browser) and a web server with lower overheads, facilitating real-time data transfer from and to the server
最后我所做的是通过许多查询不同的页面进行检索,数据表逐渐更新为来自新查询的新记录
我有一个很大的 API 请求,它给我大约 1000 个结果。由于这个请求太大,我需要将响应分成几个部分,这样会更快。我想查询 1000 个结果,但数据流与客户端一起提供
在 API 请求中,您不允许输入任何参数,因此您检索了全部帖子。响应是 JSON 与 Wordpress 基本相同(但它不是 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
})
有什么方法可以实现吗?
后端可以通过多种方式实现 streaming/pagination,JS 答案取决于您查询的后端支持哪种方式。
- 通过请求参数分页
- HTTP 范围请求(如何在允许搜索的情况下流式传输在线电影)
- Websocket 流式传输(网页游戏如何让玩家获得实时更新)
因为您在评论中提到您正在查询 Wordpress,所以我将在此举一个 Wordpress 的示例,但其他 API 可能有不同的处理方式 streaming/pagination。
WordPress API 支持分页,如下所述:
https://developer.wordpress.org/rest-api/using-the-rest-api/pagination/
您需要做的是专门请求一个带有偏移量的页面来获取那部分结果,如下所示:
/wp/v2/posts?per_page=100&offset=1000
这将在 post #1000 之后获取 post 的列表,其中每个页面有 100 个结果。
对于其他 API,您需要提供更多详细信息,以便我们确定如何流式传输结果。
了解您如何获得结果非常重要。例如,如果你使用流式传输,数据是同时到来的,你就不必处理这类问题。
您可以查看以下链接以获取后端数据流。
The WebSocket protocol enables interaction between a web client (such as a browser) and a web server with lower overheads, facilitating real-time data transfer from and to the server
最后我所做的是通过许多查询不同的页面进行检索,数据表逐渐更新为来自新查询的新记录