如何使用回调使JavaScript等待运行代码的一部分?

时间:2015-01-28 18:01:36

标签: javascript ajax callback

我有一系列3个函数,它们都具有相互依赖的AJAX调用。

第一个是JSP加载和AJAX链调用:

function loadJSP(yearmonth){

    $(".container_12").empty();
    $(".container_12").load("jsp/demotable.jsp", function(){
        loadPage(yearmonth).done(function(){

            $('table').dataTable({
                "ordering": false,
                "initComplete": function () {
                    $(".ui-toolbar").hide();
                    $( "p" ).removeClass( "myClass yourClass" )
                }
            });
            $(".loading").hide();
            $("#tabs-1").show();

        })
    });
}

现在实际的ajax调用是一个回调链:

function loadPage(yearmonth){

    return (loadMeses(yearmonth).done(loadDados));  

}

由于第一个调用在selecet框中提供了可用月份,因此第二个部分需要知道在加载数据之前最近一个月。

这条链很好用。加载数据部分仅在可用的月份ajax调用完成后运行。问题是线条

$(".loading").hide();

$("#tabs-1").show();

在表格完成之前运行。这意味着它在添加数据之前显示一个空表。

这是加载数据功能:

function loadDadoss (){

setAJAXcharConn ();
var source = "/intl/servlet/apps.test.HTMLtest?param=&p1=test2&p2=201412";  

return ($.getJSON(source,function(result){
    $.each(result, function(i, field){
        for(foo = 3;foo < 8;foo++){
                    var preparedField = accounting.formatMoney(field[foo] , "", 2, ".", ",");
                    $('#'+i).append('<td>'+preparedField);
                }
            });
    })
)}

我在这里错过了一些关于回调的内容吗?

0 个答案:

没有答案