$ getJSON在异步调用时返回一个空白的json

时间:2014-01-01 08:19:07

标签: jquery jquery-ui-tabs getjson

下面是我的代码,我在其中使用Jquery UI选项卡将通过$getJSON调用从服务器检索到的一些内容加载到选项卡中。现在我的问题是当我使用异步调用它返回的空值时,所以我使用了同步调用。现在建议不要在AJAX中使用同步调用,我还需要在加载选项卡内容之前显示加载消息。同步调用浏览器被冻结,没有显示任何内容。下面是代码:

var menuId=id;
    var id="tabs-" + id;
    var li=$('<li><a href="#'+ id +'">'+tabText+'</a><span class="ui-icon ui-icon-close"></span></li>');
    $(".ui-tabs-nav").append(li);
    $('#tabs').append( "<div id='" + id + "'><p><center><u>" + tabText + "</u></center></p></div>" );
if (applicationName=='SS'){
        var heading="";
        var data="";
        $('#'+id).append('<div id="SysStatus"></div>');
        $("#SysStatus").append('<table id="SysStatusTable" border="1"></table>');
        $("#SysStatus").hide();
        //Set async off to retrieve data from ajax synchronously
        $.ajaxSetup({async: false});
        $.getJSON('execSystemStatus.action', function(json) {

            //do something

        });
        $("#SysStatus").show();
    }
$('#tabs').tabs().tabs( "refresh" );

    $('#tabs').tabs().tabs( "option", "active", -1 );

请建议!我应该如何使异步调用正常工作,或者如果有一些工作来显示带有同步调用的加载消息。

非常感谢帮助!

1 个答案:

答案 0 :(得分:0)

而是选择下面的callbacks in getJSON,这是广泛建议的。

$.getJSON('execSystemStatus.action', function(json) {
    //do something
})
  .done(function() {
    console.log( "second success" );
  });