gpt4 book ai didi

javascript - 如何将 AJAX 输出流式传输到 Javascript 中的文件下载?

转载 作者:数据小太阳 更新时间:2023-10-29 04:51:01 45 4
gpt4 key购买 nike

我们有一个 REST API 发出 JSON,我们可以从中获取数据(使用 AJAX)。我们想要做的是能够执行 AJAX 调用,每次调用获取一小块数据(比如 5000 行左右),然后将其写入浏览器上的 CSV 文件作为下载。

如果我们把所有的数据都放在JS内存中,那么写出CSV文件似乎并不难,但是如果我们要写出100K条记录,那么我们就不得不一次性把100K条全部取下来,然后一次性生成文件。

相反,我们认为在服务器和客户端上下载小块并将其流式传输到文件下载会更加温和。有办法吗?

(我们目前使用 jQuery 2.0.0,但不介意使用不同的库来完成此操作)

最佳答案

基本上你正在寻找记录的分页......为此你可以做

  1. 查找数据库中的记录总数
  2. 比分你的记录/通话次数
  3. 合并来自不同调用的所有数据

要使用 jquery 进行多次调用,您可以这样做

$.when( $.ajax( "/page1.php" ), $.ajax( "/page2.php" ) ).done(function( a1, a2 ) {
// a1 and a2 are arguments resolved for the page1 and page2 ajax requests, respectively.
// Each argument is an array with the following structure: [ data, statusText, jqXHR ]
var data = a1[ 0 ] + a2[ 0 ]; // a1[ 0 ] = "Whip", a2[ 0 ] = " It"
if ( /Whip It/.test( data ) ) {
alert( "We got what we came for!" );
}
});

在代码中有多个 ajax 调用,最后它合并数据......如果你使用 C#,你必须在服务器端做同样的事情,而不是 TPL(Task parellel 库)是一个不错的选择......对于每个调用你需要用页码打电话

关于javascript - 如何将 AJAX 输出流式传输到 Javascript 中的文件下载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31109374/

45 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com