原文鏈接:https://www.cnblogs.com/zhaotiancheng/p/7428799.html
實際項目中,ajax可以說是非常、非常、非常 常用的。而ajax默認是 異步請求
而有的時候 ajax的異步卻不是特別的好用
//查詢當前餐桌類型下有多少個餐桌
function tableCount(tableTypeId){
var count = 0;
$.ajax({
data:{
restaurantId:'${restaurantId}',
businesstimeid:timeId,
predetermine:$('#orderdate').datebox('getValue'),
currentDate:parent.currentDate,
theBsnssTimId:parent.theBsnssTimId,
typeId:tableTypeId
},
url:'${ctx}/cater/caterTable/selectByTimeAndDuetotype',
dataType:"JSON",
type:"POST",
async:false,
success:function(result){
count = result.length;
}
});
return count;
}
調用這個方法時(方法的參數無視)
var count = tableCount(record.id);
$('#booksTableCount').html(count+'桌');
這里我先貼上同步的代碼 ,然后我說一下 同步和異步的區別
async:false 這個屬性是同步請求,即在服務器返回值之前不再加載下面的代碼,默認值為true(不寫的時候為true異步請求)
當我沒有寫async:false的時候, 這個方法返回的值為0 因為 方法還沒有返回值的時候 下方代碼已經加載完 那么count 有個默認值是0 :

未返回值,下面的方法便開始執行了,所以會顯示成0
當加上async:false的時候,代碼不再繼續加載,等到服務器返回值之后才繼續走,即走了success之后 才繼續執行下面的代碼 才有返回值

什么時候返回值,才會繼續加載其他代碼

