单步执行 json 个结果,每个结果之间有延迟?
step through json results with a delay between each?
我正在加载 JSON 文件并对结果执行 $.each
。但是,我希望在处理 JSON 数据中的每个项目之间有延迟。我有以下代码,但它等待 1000 毫秒,然后一次输出所有 item.time
值。
$.getJSON("data/data.json", function() {
}).done(function(d) {
console.log("Got JSON");
$d.each(function(i, item){
setTimeout( function(){
series.append(item.time, item.value);
console.log(item.time)}, 1000)
});
});
尝试以下操作 - 对结构的某些部分进行了一些更改。
遗憾的是,由于没有任何数据集,因此未能对其进行测试。
$.getJSON( "data/data.json", function() {
console.log( "success" );
}).done(function(data) {
$.each( data, function( i, item ) {
setTimeout(function () {
series.append(item.time, item.value);
console.log(item.time)
}, i * 1000);
});
})
添加了索引元素以随着每个元素的增加而增加,因为延迟需要增加,因此它的时间顺序。
示例:
假设您有 10 个数据集,现在使用 $.each
函数,您可以遍历这些数据集并将正确的元素附加到 DOM(简单...)。
现在,如果您想在每个元素之间添加一个暂停,以便加载第一个元素,然后在 1 秒后加载下一个元素,您不能使用静态 1000 毫秒 延迟。随着数据集的下降,您需要增加数字。否则,它只会等待 1000ms 然后同时显示所有内容。
将它们 space 出来,并在 $.each
函数内,你得到索引作为可以使用的回调。如此简单的实现将只是时间 (*) 超时,所以它以 1000ms 开始,然后下一个将是 2000ms (但只是一个从第一个元素延迟一秒)。
更改对 setTimeout 的调用:
setTimeout( function(){
series.append(item.time, item.value);
console.log(item.time)}, i * 1000)
同时调用所有setTimeout(在循环中),它们都从现在开始执行到1000。对于 space 他们,只需将延迟乘以 index-> 1000 * i 即可得到所需的结果。
我正在加载 JSON 文件并对结果执行 $.each
。但是,我希望在处理 JSON 数据中的每个项目之间有延迟。我有以下代码,但它等待 1000 毫秒,然后一次输出所有 item.time
值。
$.getJSON("data/data.json", function() {
}).done(function(d) {
console.log("Got JSON");
$d.each(function(i, item){
setTimeout( function(){
series.append(item.time, item.value);
console.log(item.time)}, 1000)
});
});
尝试以下操作 - 对结构的某些部分进行了一些更改。
遗憾的是,由于没有任何数据集,因此未能对其进行测试。
$.getJSON( "data/data.json", function() {
console.log( "success" );
}).done(function(data) {
$.each( data, function( i, item ) {
setTimeout(function () {
series.append(item.time, item.value);
console.log(item.time)
}, i * 1000);
});
})
添加了索引元素以随着每个元素的增加而增加,因为延迟需要增加,因此它的时间顺序。
示例:
假设您有 10 个数据集,现在使用 $.each
函数,您可以遍历这些数据集并将正确的元素附加到 DOM(简单...)。
现在,如果您想在每个元素之间添加一个暂停,以便加载第一个元素,然后在 1 秒后加载下一个元素,您不能使用静态 1000 毫秒 延迟。随着数据集的下降,您需要增加数字。否则,它只会等待 1000ms 然后同时显示所有内容。
将它们 space 出来,并在 $.each
函数内,你得到索引作为可以使用的回调。如此简单的实现将只是时间 (*) 超时,所以它以 1000ms 开始,然后下一个将是 2000ms (但只是一个从第一个元素延迟一秒)。
更改对 setTimeout 的调用:
setTimeout( function(){
series.append(item.time, item.value);
console.log(item.time)}, i * 1000)
同时调用所有setTimeout(在循环中),它们都从现在开始执行到1000。对于 space 他们,只需将延迟乘以 index-> 1000 * i 即可得到所需的结果。