Jquery Ajax加载序列

时间:2011-10-20 02:04:23

标签: javascript jquery ajax

我有一个jQuery Ajax函数,它从服务器请求数据。

代码找到所有跨距,获取其ID并将其发送到json.php以获得结果。每个id返回一个不同的值,它们的加载时间也不同。假设一个人立即加载,另一个人在10秒内加载。

什么是错的:好的,一旦页面加载,所有请求都会被发送到json.php,但是如果第三个跨度将立即返回结果,那么前两个的WAITS首先加载!!

场景:我有3个跨度,第一个必须在9秒内返回,秒必须在4秒内返回,第三个必须在5秒内加载。  发生的情况如下:第一个跨度出现在9秒后,秒跨度出现在9 + 4秒之后,最后一个跨度出现在9 + 4 + 3秒内。

以下是代码:

<script>
function getData(d){
    var r=Math.floor(Math.random()*500)
    $('#'+d).addClass('load');
    var handler = '';
    $.get('json.php?request='+d+'&r='+r, function(data) {
                var obj = jQuery.parseJSON(data);
                for (var i = 0; i < obj.length; i++) {
                    var object = obj[i];
                    for (property in object) {
                            handler = object[property];
                                $('#'+d).removeClass('load');
                                $('#'+d).html(handler);
                    }
                }
    });
    return true;
}

$(document).ready(function() {
    $("span").each(function() {               
         getData($(this).attr('id'));
     });
});
</script>

            <span id="first_data"></span>
            <span id="second_data"></span>
            <span id="third_data"></span>

这里有什么不对吗?