循环迭代之间的jQuery延迟

时间:2013-06-13 01:57:17

标签: javascript jquery ajax

是否可以在javascript for循环之间设置延迟,而不仅仅使用settimeout,而是基于何时进行特定的ajax调用?

类似的东西:

for (var i = 0 ; i < list.length ; i++)
{
   $when('index.jsp').done(function(a1){
     alert(i);
   });
}

发送ajax请求并发出第一个警报,然后在第一个ajax调用完成后执行第二次迭代和警报。

2 个答案:

答案 0 :(得分:3)

我认为以下内容应该有效:

(function() {
    var i = 0, end = list.length;
    function iterate() {
        $.ajax('index.jsp').done(function() {
            alert(i);
            i++;
            if (i < end) {
                iterate();
            }
        });
    }
    iterate();
})();

答案 1 :(得分:1)

完成后续工作的一种简单方法是使用Ajax函数中的回调来递归调用自身。否则我不确定在for循环中这样做是因为Ajax调用是异步的。