ajax請求同步與異步的區別


//同步請求

$.ajax({
    type:'post',
 url:"<c:url value='/device/org/' />"+val,
 data:{'orgId':val},
 success:function(data){
 name=data.orgName;
 },
 dataType:"json",

 async:false
});

function(2);

當執行當前AJAX的時候會停止執行后面的JS代碼,直到AJAX執行完畢后時,才能繼續執行后面的JS代碼。

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

 
//異步請求
$.ajax({ 
      type: "POST" ,
      url: "Venue.aspx?act=init" ,
      dataType: "html" ,
      success: function (result){  //function1()
        f1();
        f2(); 
     }
      failure: function (result) { 
       alert( 'Failed' ); 
      },
  }
  function2();
當ajax發送請求后,在等待server端返回的這個過程中,前台會繼續 執行ajax塊后面的腳本,直到server端返回正確的結果才會去執行success,也就是說這時候執行的是兩個線程,ajax塊發出請求后一個線程 和ajax塊后面的腳本(另一個線程)
在上例中,當ajax塊發出請求后,他將停留function1(),等待server端的返回,但同時(在這個等待過程中),前台會去執行function2()。
 


免責聲明!

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



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