1. 程式人生 > >ajax async屬性(同步非同步)

ajax async屬性(同步非同步)

$('#btn-query').on('click',function(){
        var obj=0;
        $.ajax({
            url:"../data/test.txt",
            contentType:"application/json",
            type:"POST",
            cache:false,
            async:true,
            beforeSend:function(){
                $('#queryForm').hide();
            },
            success:function
(result){
obj=result; }, complete:function(){ } }); console.log(obj); }); } ***ajax的async屬性預設為true*** 1. async:true,這種情況為非同步方式,當ajax傳送請求前,會先執行ajax塊中beforeSend裡面的程式碼,如果beforeSend裡面有DOM操作,就可以立即對DOM進行渲染,當ajax傳送請求後,在等待server端返回的資料的過程中,程式會繼續執行ajax塊外面的程式碼,直到伺服器返回正確的結果才會去執行success的方法。因此,在執行success前DOM隱藏且obj=0
2.async:false,,這時ajax的請求是同步的。這樣的話,當ajax傳送請求前,會先執行ajax塊中beforeSend裡面的程式碼,如果beforeSend裡面有DOM操作,不會立即對DOM進行渲染,而是等到complete執行完之後,才會渲染DOM,當ajax傳送請求後只有ajax請求成功之後,才會執行ajax塊外面的js程式碼。因此,在執行完complete之後DOM才隱藏且obj=result。

重點內容:
1.資料載入時的轉圈圈:需要非同步時,在beforeSend裡面新增,在complete裡面清除