DIV CSS 佈局教程網

 DIV+CSS佈局教程網 >> 網頁腳本 >> JavaScript入門知識 >> 關於JavaScript >> jQuery中的ajax async同步和異步詳解
jQuery中的ajax async同步和異步詳解
編輯:關於JavaScript     

項目中有這樣一個需求,使用ajax加載數據返回頁面並賦值,然後前端取出該值

這其中涉及到代碼的順序問題,有時後台還未返回數據,但已執行後面代碼,

所以就會造成取不到值

$.ajax({ type: "post",  url: "admin/PfmOptionRuleItem.do", success: function(data){  $("#ruleItem").val(data.ruleItem); //① } }); return $("#ruleItem").val(); //②

如果①還未從後台返回數據 此時執行②就獲取不到值

Ajax的第一個字母是asynchronous的開頭字母,這意味著所有的操作都是並行的,完成的順序沒有前後關系。

$.ajax()的async參數總是設置成true,這標志著在請求開始後,其他代碼依然能夠執行。

如果把這個選項設置成false,這意味著所有的請求都不再是異步的了,這也會導致浏覽器被鎖死。

雖然官方不建議這麼干,只是不能用太多,否則會造成用戶體驗不佳

舉個栗子

alert("setp 1"); $.ajax({  url: "admin/PfmOptionRuleItem.do",  async: false,  success: function(data){   alert("hello ajax"); //①  } }); alert("setp 2"); //②

當把asyn設為false時,這時ajax的請求時同步的,也就是說,這個時候ajax塊發出請求後,

他會等待在①這個地方,不會去向下執行②,直到①執行完畢

此時依次執行順序為

setp 1

hello ajax

setp 2

如果async為true 則執行順序為

setp 1

setp 2

hello ajax

關於本文給大家敘述的jQuery中的ajax async同步和異步,全部介紹完了,希望對大家有所幫助。

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved