ajax 同步和異步

1、async值爲true (異步)html

當ajax發送請求後,在等待server端返回的這個過程當中,前臺會繼續 執行ajax塊後面的腳本,直到server端返回正確的結果纔會去執行success,也就是說這時候執行的是兩個線程,ajax塊發出請求後一個線程 和ajax塊後面的腳本(另外一個線程)ajax

例如json

?服務器

1異步

2async

3函數

4post

5url

6spa

7

8

9

10

11

12

13

$.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()。

2、async值爲false (同步)

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

例如

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

$.ajax({ 

     type:"POST",

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

     dataType:"html",

     async: false,

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

       f1();

       f2();

     }

    failure:function (result) { 

      alert('Failed'); 

     },

 }

 function2();

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

 

若是是這樣的話,彷佛ajax 的同步也沒有什麼用的呢?

並且若是不少這樣的話,這樣用戶體驗是很差的。

經過遠程 HTTP POST 請求載入信息。

這是一個簡單的 POST 請求功能以取代複雜 $.ajax 。請求成功時可調用回調函數。若是須要在出錯時執行函數,請使用 $.ajax。

參數

url,[data],[callback],[type]String,Map,Function,StringV1.0

url:發送請求地址。

data:待發送 Key/value 參數。

callback:發送成功時回調函數。

type:返回內容格式,xml, html, script, json, text, _default。

使用 post 的回調函數,而後 更加返回的值,來進行 操做彷佛也能夠達到咱們須要的效果的。

 

jQuery.post( url, [data], [callback], [type] ) :
使用POST方式來進行異步請求

參數:

url (String) : 發送請求的URL地址.

data (Map) : (可選) 要發送給服務器的數據,以 Key/value 的鍵值對形式表示。

callback (Function) : (可選) 載入成功時回調函數(只有當Response的返回狀態是success纔是調用該方法)。

type (String) : (可選)官方的說明是:Type of data to be sent。其實應該爲客戶端請求的類型(JSON,XML,等等)

function saveCallback(result) {

    if (result.success) {

  執行成功,在這裏寫咱們的代碼,。。

}

相關文章
相關標籤/搜索