在网上看了很多关于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,所以后面就好理解了。