下面是我的代码,我在其中使用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 );
请建议!我应该如何使异步调用正常工作,或者如果有一些工作来显示带有同步调用的加载消息。
非常感谢帮助!
答案 0 :(得分:0)
而是选择下面的callbacks in getJSON
,这是广泛建议的。
$.getJSON('execSystemStatus.action', function(json) {
//do something
})
.done(function() {
console.log( "second success" );
});