欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

jQuery中的ajax async同步和異步詳解

 更新時間:2015年09月29日 09:44:27   投稿:mrr  
async在jquery ajax中是一個同步參數(shù)。本篇文章給大家介紹jq中的ajax async同步和異步,小伙伴跟著小編一起學(xué)習(xí)吧

項目中有這樣一個需求,使用ajax加載數(shù)據(jù)返回頁面并賦值,然后前端取出該值

這其中涉及到代碼的順序問題,有時后臺還未返回數(shù)據(jù),但已執(zhí)行后面代碼,

所以就會造成取不到值

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

如果①還未從后臺返回數(shù)據(jù) 此時執(zhí)行②就獲取不到值

Ajax的第一個字母是asynchronous的開頭字母,這意味著所有的操作都是并行的,完成的順序沒有前后關(guān)系。

$.ajax()的async參數(shù)總是設(shè)置成true,這標(biāo)志著在請求開始后,其他代碼依然能夠執(zhí)行。

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

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

舉個栗子

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

當(dāng)把asyn設(shè)為false時,這時ajax的請求時同步的,也就是說,這個時候ajax塊發(fā)出請求后,

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

此時依次執(zhí)行順序為

setp 1

hello ajax

setp 2

如果async為true 則執(zhí)行順序為

setp 1

setp 2

hello ajax

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

相關(guān)文章

最新評論