【问题标题】:using for loop in jquery then pause between each iteration help在 jquery 中使用 for 循环,然后在每次迭代帮助之间暂停
【发布时间】:2011-05-01 03:26:55
【问题描述】:

怎么样了,

需要一些帮助,需要一些 for 循环和暂停。我自己做了一些研究,并且一直遇到 setTimeout() 函数,但我需要更多帮助来理解它,或者是否有人可以帮助我了解如何将它实现到我的代码中,或者是否有其他方法。

    $(document).ready(function() {
            for(i=0; i<counter; i++)
            {
                dataCounter = i;
                $.ajax({
                  url: 'file.php',
                    dataType: 'json',
                    data: {count: dataCounter},
                    error: function(){
                        alert('Error loading XML document');
                    },
                    success: function(data){
                        $("#contents").html(data);  
                    }
                });
            }

});

我想知道如何在我的 $.ajax 函数之后暂停,然后再继续我的下一个增量。

请帮忙!谢谢你:)

【问题讨论】:

    标签: jquery ajax for-loop delay settimeout


    【解决方案1】:

    怎么样……

    (function() {
    
        var index = 0;
    
        function next() {
    
            setTimeout(function() {
                if (index == counter) {
                    return;
                }
    
                // Do what you need to do   
                index++;
                next();
            }, 1000);
    
        }
    
    })();
    

    或者,您可以使用Datedo { ... } while() 循环创建sleep style function。但是setTimeout() 要好得多,因为任何 JavaScript sleep 样式的函数都必须一直处于循环状态,直到它准备好完成,这并不是真正的 sleep。 p>

    【讨论】:

    • 我可以把 .ajax 函数复制到你说的地方吗 // 做你需要做的事情,这样就可以了?另外,我只是把 (function() {...})();全部在 $(document).. 抱歉,我对 jquery 还很陌生。
    【解决方案2】:

    您的意思是“等待请求完成发送下一个”?

    如果是这样,在.ajax调用中再设置一个参数。

    async: false
    

    来自jQuery .ajax doc

    async :: Boolean - 默认值:true

    默认情况下,发送所有请求 异步(即设置为 默认情况下为真)。如果你需要 同步请求,设置此选项 为假。跨域请求和 dataType: "jsonp" 请求不 支持同步操作。笔记 同步请求可能 暂时锁定浏览器, 禁用任何操作,而 请求处于活动状态。

    【讨论】:

      【解决方案3】:

      http://jsfiddle.net/samccone/hkjpA/

      嗨,andrewliu,这个例子应该可以正常工作,希望这对你有帮助

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-07-09
        • 1970-01-01
        • 1970-01-01
        • 2011-10-22
        • 2012-10-20
        相关资源
        最近更新 更多