ajax同步异步
async:false同步,默认是true异步;
同步的意思是当JS代码加载到当前AJAX的时候会把页面里所有的代码停止加载,页面出现假死状态,当这个AJAX执行完毕后才会继续运行其他代码页面假死状态解除。而异步则这个AJAX代码运行中的时候其他代码一样可以运行。
例如:
在写dataTable时候,如果此时dataTable里面的data需要用到ajax返回的data时候,就需要定义一个全局变量dataTableAjax;
接下来写ajax
$.ajax({
"type":"get",
"url":"static/js/app/realtimeData/search.json",
"data":{
"zylb":$('#zylb').val(),
"stationName":$('#stationName').val()
},
"url":"static/js/app/realtimeData/search.json",
"data":{
"zylb":$('#zylb').val(),
"stationName":$('#stationName').val()
},
"dataType":"json",
"async":false,//------注意!!!此时若为true,则后面在用realTimeData.Table1的时候是null;若为false,则后面在用realTimeData.Table1的时候是success里 // 面返回的data值;--ajax同步异步的区别
success:function(data){
console.log(data);
realTimeData.Table1=data;
console.log("ajax");
}
console.log(data);
realTimeData.Table1=data;
console.log("ajax");
}
})
dataTale({
"data":dataTableAjax.data,
"columns":dataTableAjax.columns
})
ajax同步异步的区别:
async:false同步,默认是true异步;
同步的意思是当JS代码加载到当前AJAX的时候会把页面里所有的代码停止加载,页面出现假死状态,当这个AJAX执行完毕后才会继续运行其他代码页面假死状态解除。而异步则这个AJAX代码运行中的时候其他代码一样可以运行。
即异步时候,ajax运行时候下面的代码同时运行,此时用到了realTimeData.Table1的值,此时是null,会报错