ajax之async屬性


原文鏈接: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之后  才繼續執行下面的代碼  才有返回值

 

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM