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。