js for循环如何延时休眠

JavaScript016

js for循环如何延时休眠,第1张

for语句不会因为有setTimeout的存在而停止,他会跳过setTimeout,setTimeout设定的是100毫秒的延迟,而for语句执行根本用不了那么长时间所以会先弹出九个alert,然后才setTimeout中的alert 可以使用递归来解决这个问题 var i=0 function al() { i++ if(i<10) setTimeout(function(){alert("i="+i)al()},2000) } al()

加个定时器:

function m_for()

{

for( var i=0i<3i++){

setTimeOut("m_method(i)",100) //100代码0.1秒

}

}

function m_method(var count)

{

//这里写要执行的代码

alert(count)

}

如果要实现你的这种效果,应该把思路改变一下

function a(num)

{

//这里面有用到Ajax的技术,当然一般会有个回调函数

//假定这个回调函数为callback()

}

function callback()

{

//把for循环的判断移到这里来

//打个比方,当i=0时,已经调用了a(num)

//if (xmlHttp.status == 200) {

//这里处理的当i=0时的事件

//再次调用a(num)

//}

}

也就是说没有for循环了,当你想再次调用这个a函数时,实际上是在回调函数里完成的,即当上次的Ajax请求成功返回并处理后会再次发出Ajax请求