Jquery Ajax回调更新最后引用的元素

Jquery Ajax回调更新最后引用的元素,jquery,ajax,callback,Jquery,Ajax,Callback,我有一个仪表板对象数组要添加到页面中,但我发现JavaScript通过该数组的速度远远快于Ajax端点的响应速度,因此所有回调都会尝试更新最后的元素 循环: for(i=0,l=dashboards.length;i我还没有测试过这一点,但我相信它会起作用。您需要链接回调,以便在前一个ajax请求的回调被触发后,i才会增加 for( i=0, l=dashboards.length; i<l; i++ ){ $("#dashboard-container").app

我有一个仪表板对象数组要添加到页面中,但我发现JavaScript通过该数组的速度远远快于Ajax端点的响应速度,因此所有回调都会尝试更新最后的元素

循环:


for(i=0,l=dashboards.length;i我还没有测试过这一点,但我相信它会起作用。您需要链接回调,以便在前一个ajax请求的回调被触发后,i才会增加

    for( i=0, l=dashboards.length; i<l; i++ ){
        $("#dashboard-container").append(template(dashboards[i]["templateargs"]));
        var cur_id = dashboards[i]["templateargs"]["dashboard-id"];
        var chart = $("#"+cur_id+"-chart");
        var table = $("#"+cur_id+"-table tbody");
    }
    start_ajax_chain(0,dashboards.length,dashboards);

    function start_ajax_chain(i,l,dashboards){
    if(i<l){
       $.ajax({
               type: "GET",
               url: dashboards[i]["ajaxurl"],
               error: function() { alert('AJAX error'); },
               success: function(data){
                         callback = dashboards[i]["callback"];  
                         callback(data);
                         i++;
                         start_ajax_chain(i,l,dashboards);}
             });

         }
    }

for(i=0,l=dashboards.length;i您需要在回调中定义
chart-chart\u选项
table
。否则,您只需引用上一个
chart-chart\u选项
table
function(data) {
    $.plot(chart, data, chart_options);
    for(i=0;i<data.length;i++) {
        table.append("<tr><td>"+data[i]['label']+"</td><td>"+data[i]['data']+"</td></tr>");
    }
}
    for( i=0, l=dashboards.length; i<l; i++ ){
        $("#dashboard-container").append(template(dashboards[i]["templateargs"]));
        var cur_id = dashboards[i]["templateargs"]["dashboard-id"];
        var chart = $("#"+cur_id+"-chart");
        var table = $("#"+cur_id+"-table tbody");
    }
    start_ajax_chain(0,dashboards.length,dashboards);

    function start_ajax_chain(i,l,dashboards){
    if(i<l){
       $.ajax({
               type: "GET",
               url: dashboards[i]["ajaxurl"],
               error: function() { alert('AJAX error'); },
               success: function(data){
                         callback = dashboards[i]["callback"];  
                         callback(data);
                         i++;
                         start_ajax_chain(i,l,dashboards);}
             });

         }
    }