为setTimeout创建一个循环

时间:2015-12-09 23:37:38

标签: javascript loops settimeout

我有这个代码工作正常,在计时器结束时创建一个闪烁的影响,但我确信这可以使用循环更容易完成。任何人都可以告诉我这个循环,因为我无法弄明白,提前谢谢。

$url = $_GET['url'];// my attempt...
        if (isDomainAvailible($url))//this is where the problem is
           {

}

3 个答案:

答案 0 :(得分:2)

这是一种快速/肮脏的方式

function white() { theBody.className = "white"; }
function red()   { theBody.className = "red"; }

for (var i=0; i<=4250; i+=500) {
  setTimeout(white, i);
  setTimeout(red, i+250);
}

更有可能的是,您只想使用setInterval设置间隔并持续循环直到某个未来事件。像

  • 循环5秒,
  • 或循环,直到用户点击stop按钮
  • 或其他一些条件

答案 1 :(得分:1)

你可以使用setInterval,它会在每个间隔内调用有问题的函数,直到被取消。

var myVar = setInterval(function(){ 
  theBody.className = (theBody.className == "white")? "red" : "white";
}, 250);

要停止执行,您所要做的就是:

 clearInterval(myVar);

答案 2 :(得分:0)

您可以使用setInterval定期执行某些操作,并且可以使用clearInterval清除该时间间隔(以使其停止)。

var theBody = document.getElementById("theBody");
var max = 10;
var effect = setInterval(function () {
    theBody.className =  (max % 2 == 0) ? "white" : "red";
    max--;
    if (max == 0) {
        clearInterval(effect);
    }
}, 
250 // how often to do this in milliseconds
);

see fiddle