Javascript 如何使用setTimeout获得计时执行速度?

Javascript 如何使用setTimeout获得计时执行速度?,javascript,settimeout,Javascript,Settimeout,我试图编写由setTimeout执行的Java脚本语句。我的代码将元素添加到画布中。我想获得一种动画,其中一些图形元素在几秒钟后一个接一个地添加到画布中 我试过: for (series in respuesta) { if (series != "x" && series != "y" && series != "raiz") { (function(x){ setTimeout(function(){ plot

我试图编写由
setTimeout
执行的Java脚本语句。我的代码将元素添加到画布中。我想获得一种动画,其中一些图形元素在几秒钟后一个接一个地添加到画布中

我试过:

for (series in respuesta) {
    if (series != "x" && series != "y" && series != "raiz") {
        (function(x){
            setTimeout(function(){  plot.highlight(1,[respuesta[x].a,0])
                                    plot.highlight(1,[respuesta[x].b,0])},
                                    2500,c,x);                     
            c++;
         }(series))

    }     
}
然而,我得到的只是在延迟后立即执行的所有语句。我真的认为每个
setTimeout
都是循环中的一步。在总共n次迭代中,每次都有n次延迟

使用jQuery或任何库是否有任何简单的方法可以做到这一点?

在jQuery中尝试setInterval()

setInterval(function() {
      // Do something every 5 seconds
}, 5000);
在jQuery中尝试setInterval()

setInterval(function() {
      // Do something every 5 seconds
}, 5000);

您正在循环中设置超时。为什么不为每个循环迭代增加2500ms,使它们均匀分布,而不是延迟相同的时间

var  timeout = 2500; 
for (series in respuesta) {
    if (series != "x" && series != "y" && series != "raiz") {
        (function(x){
            setTimeout(function(){  plot.highlight(1,[respuesta[x].a,0])
                                    plot.highlight(1,[respuesta[x].b,0])},
                                    timeout,c,x);                     
            c++;
            timeout += 2500;
         }(series))

    }     
}

您正在循环中设置超时。为什么不为每个循环迭代增加2500ms,使它们均匀分布,而不是延迟相同的时间

var  timeout = 2500; 
for (series in respuesta) {
    if (series != "x" && series != "y" && series != "raiz") {
        (function(x){
            setTimeout(function(){  plot.highlight(1,[respuesta[x].a,0])
                                    plot.highlight(1,[respuesta[x].b,0])},
                                    timeout,c,x);                     
            c++;
            timeout += 2500;
         }(series))

    }     
}

您应该使用
setInterval()
。这会在一定的时间间隔内反复重复相同的功能:

 var i = 0;
 var myItems = ["a", "b", "c"]
 var myHandle = setInterval(function() {

     // Add new items here.

     i++;

     if (i >= myItems.length) {
        clearInterval(myHandle);
     }

 }, 1000) ;

您应该使用
setInterval()
。这会在一定的时间间隔内反复重复相同的功能:

 var i = 0;
 var myItems = ["a", "b", "c"]
 var myHandle = setInterval(function() {

     // Add new items here.

     i++;

     if (i >= myItems.length) {
        clearInterval(myHandle);
     }

 }, 1000) ;

你试过setInterVal()吗?也许制作小提琴是个好主意?添加最后一个参数:timeI我认为
setTimeout
的语法是错误的。只允许使用2个参数<代码>设置超时(函数(){//Your execution statement},2500)是否尝试设置间隔()?也许制作小提琴是个好主意?添加最后一个参数:timeI我认为
setTimeout
的语法是错误的。只允许使用2个参数<代码>设置超时(函数(){//Your execution statement},2500)这不适合此问题。这每5秒执行一次相同的执行,而OP根据循环改变执行。你好,Praveen,你能告诉我这段代码在每次执行中都输出相同的结果吗
var i=0;setInterval(函数(){alert(i);i++;},5000)这只是普通的JavaScript,不是jQuery。这不适合这个问题。这每5秒执行一次相同的执行,而OP根据循环改变执行。你好,Praveen,你能告诉我这段代码在每次执行中都输出相同的结果吗
var i=0;setInterval(函数(){alert(i);i++;},5000)这只是普通的JavaScript,不是jQuery。