jquery ajax同步和非同步屬性async詳解

來源:互聯網
上載者:User

例1。jquery+ajax/" target="_blank">jquery ajax同步方式

 代碼如下 複製代碼

$.ajax({

url : 'test.php',

type : 'post',

async: false,//使用同步的方式,true為非同步方式

data : {'act':'addvideo', 'videoname':videoname},//這裡使用json對象

success : function(data){

//code here...

},

fail:function(){

//code here...

}

});


例2

 代碼如下 複製代碼

//javascript
function test()
{
 var a= 1;
 $.ajax({
  type   : 'GET',
  url    : 'test.php',
  data   : 'page=112',
  success:function(msg)
  {
   alert(msg);
   a= msg;
  }
 })
 alert(a);
}

//test.php
sleef('5'); //休息五分鐘
echo 'in';

/*
 這個程式運行情況是  先列印1(a=1) 然後五秒過後 列印 in
 根據這個情況就可以知道 jquery 的ajax的執行流程
 因為是非同步呼叫
 以前就是這樣給一個變數賦值  不管怎麼弄都是不對的。最後就發現這個問題
 參數async改為false就為同步調用 當ajax返回結果後程式才繼續執行
*/

例3

在這裡,async預設的設定值為true,這種情況為非同步方式,就是說當ajax發送請求後,在等待server端返回的這個過程中,前台會繼續 執行ajax塊後面的指令碼,直到server端返回正確的結果才會去執行success,也就是說這時候執行的是兩個線程,ajax塊發出請求後一個線程 和ajax塊後面的指令碼(另一個線程)例:

 代碼如下 複製代碼

$.ajax({  

          type:"POST", 

         url:"Venue.aspx?act=init", 

           dataType:"html", 

          success:function(result){   //function1()

             f1(); 

             f2(); 

        } 

         failure:function (result) {  

            alert('Failed');  

         }, 

  } 

  function2(); 

在上例中,當ajax塊發出請求後,他將停留function1(),等待server端的返回,但同時(在這個等待過程中),前台會去執行function2(),也就是說,在這個時候出現兩個線程,我們這裡暫且說為function1() 和function2()。

當把asyn設為false時,這時ajax的請求時同步的,也就是說,這個時候ajax塊發出請求後,他會等待在function1()這個地方,不會去執行function2(),知道function1()部分執行完畢。

注意

同步的意思是當JS代碼載入到當前AJAX的時候會把頁面裡所有的代碼停止載入,頁面出去假死狀態,當這個AJAX執行完畢後才會繼續運行其他字碼頁面假死狀態解除。
而非同步則這個AJAX代碼運行中的時候其他代碼一樣可以運行。
jquery的async:false,這個屬性

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.