首頁  >  文章  >  web前端  >  jquery ajax屬性async(同步非同步)範例_jquery

jquery ajax屬性async(同步非同步)範例_jquery

WBOY
WBOY原創
2016-05-16 17:17:231004瀏覽

範例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

例2例如🎜>複製程式碼

程式碼如下:


//javascript
function test()
{
 
 $.ajax({
  type   : 'GET',
  url    : 'test.php',
  data   : 'page=112',php',
  data   : 'page=112',php',
  data   : 'page=112',php',
  data   : 'page=112',php',  {
   alert(msg);
   a= msg;
  }
 })
 alert(a);
}
//test. ('5'); //休息五分鐘
echo 'in';
/*
 這個程式運作情況是  先列印1(a=1) 然後五秒過後列印in
 這個情況就可以知道jquery 的ajax的執行流程
 因為是非同步呼叫
 以前就是這樣給一個變數賦值  不管怎麼弄都是不對的。為同步呼叫當ajax回傳結果後程式才繼續執行
*/
 

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


$.ajax({ 
          type:"POST",
      dataType:"html",
          success:function(result){   //function1()
                  }
         failure:function (result) { 
            alert('Failed') ; 
         },
  }
  function2();
 
在上例中,當ajax區塊發出請求後,他將停留在伺服器上1(但同時(在這個等待過程中),前台會去執行function2(),也就是說,在這個時候出現兩個線程,我們這裡暫且說為function1() 和function2()。
當把asyn設為false時,這時ajax的請求時同步的,也就是說,這個時候ajax塊發出請求後,他會等待在function1()這個地方,不會去執行function2(),知道function1()部分執行完畢。
注意
同步的意思是當JS程式碼載入到目前AJAX的時候會把頁面裡所有的程式碼停止加載,頁面出去假死狀態,當這個AJAX執行完畢後才會繼續運行其他程式碼頁面假死狀態解除。
而異步則這個AJAX程式碼運行中的時候其他程式碼一樣可以運作。
jquery的async:false,這個屬性
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn