gpt4 book ai didi

javascript - 在进度事件中处理分块 JSON?

转载 作者:行者123 更新时间:2023-11-30 20:23:05 25 4
gpt4 key购买 nike

我有一个服务器请求,它可能会返回一个巨大的 json 列表(~100K 记录,~50 Mb)我必须使用 D3js 在 Canvas 上绘制的点。我想在它们到达时绘制它们,以便有利于交互性和备用内存,所以:

我在服务器端启用了分块传输编码+ 我在客户端试过这个:

d3.json('?json=qDefects&operationid=' + opid) // my request 
.on("load", function (json) {
draw(json); // this works, but only after a long delay that I'd avoid...
})
.on("progress", function (json) {
draw(json); // but this fails : json is not yet available here
})
.get();

是否可以在加载时分块处理 JSON?以不同方式构建 JSON 数据是否有帮助?目前它是一个单一的数组,所以我有

[{"x":1, "y":2},{"x":2, "y":3}, // chunk 1
...
{"x":6845, "y":239426},{"x":51235, "y":234762}] // last chunk

将点划分成更小的数组会有帮助吗?

最佳答案

查看随附的 fiddle :http://jsfiddle.net/Q5Jag/12412/

虽然前面的答案是正确的,因为您不能修改进度事件,但您可以执行调用外部变量的简单操作。所以下面的代码将允许您重新处理字符串并将其发送到 d3

var x = ''
d3.json("https://api.myjson.com/bins/1d7yoi")
.on("progress", function(d) {
x = d.responseText
x = "ehllo" + x;
console.log(x)
})
.on("load", function() {
console.log("done")
})
.get()

您可以将 responseText 分配给变量 x 并根据需要对 x 进行操作。

关于javascript - 在进度事件中处理分块 JSON?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51247059/

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