在网上看了很多关于ajax中同步和异步的区别,这个同步的意思是当JS代码加载到当前AJAX的时候会把页面里所有的代码停止加载,页面出去假死状态,当这个AJAX执 行完毕后才会继续运行其他代码页面假死状态解除。
而异步则这个AJAX代码运行中的时候其他代码一样可以运行。
下面贴上一段代码进行分析。
function createTable(){
var data = getAllLocation(); //调用getAllLocation()函数
var locationList = data.locationList; 这的data.locationList中的locationList是后台中的,是位置的集合。
if(locationList.length<=0){
$('#noData').css("display","block");
}else{
$('#noData').css("display","none");
$.each(locationList, function(i) {
$('#tagTable tbody').append('<tr>');
$('#tagTable tbody').append('<td title="" valign="top" nowrap><input csaId="'+this.id+'" type="checkbox" value="" /></td>');
$('#tagTable tbody').append('<td title="'+this.engineRoom+'" nowrap>'+this.engineRoom+'</td>');
$('#tagTable tbody').append('<td title="'+this.cabinet+'" nowrap>'+this.cabinet+'</td>');
$('#tagTable tbody').append('</tr>');
});
}
}
//获取位置信息
function getAllLocation(){
var dataJson = null;
$.ajax({
type:'POST',
async:false,
dataType:'json',
url:'getAllLocation',
success:function(data){
dataJson = data;
}
});
return dataJson;
}
通过上面的代码,如果async:false表示同步,这时页面处于假死状态,ajax后面的代码不会去执行。程序运行不会出现问题。
当把async中的false改成true时,运行会报错。
因为,直接执行了代码returna dataJson,所以后面就好理解了。