淺析jquery ajax異步調(diào)用方法中不能給全局變量賦值的原因及解決方法
在調(diào)用一個jquery的ajax方法時我們有時會需要該方法返回一個值或者給某個全局變量賦值,可是我們發(fā)現(xiàn)程序執(zhí)行完后并沒有獲取到我們想要的值,這時很有可能是因為你用的是ajax的異步調(diào)用async:true(默認情況),如:
function ManageCommentText(text) {
var result = text;
$.ajax({
data: "get",
url: "GetComments.aspx",
data: "type=getText&commentText=" + text,
cache: false,
async: false,
success: function (data) {
result = data;
}
})
return result;
以上方法是ajax的同步調(diào)用,只有在獲取到了data值并賦值給result以后才會返回result完成該方法的調(diào)用。若設(shè)為async:true,
則會未等到獲取data值就已經(jīng)返回了result。
另一個解決辦法就是將你的代碼直接寫到success方法里。(根據(jù)你的業(yè)務(wù)并不是所有的都可以直接寫到success里的)。
注意:如果設(shè)定為 async: false,就失去 ajax異步的優(yōu)點了哦。
相關(guān)文章
jQuery EasyUI 布局之動態(tài)添加tabs標簽頁
本文給大家介紹jquery easyui布局之動態(tài)添加tabs標簽頁,實現(xiàn)思路是這樣的通過調(diào)用add方法就可以輕松實現(xiàn),本文分步驟給大家詳細介紹,需要的朋友一起學(xué)習(xí)吧2015-11-11jQuery源碼分析之jQuery.fn.each與jQuery.each用法
這篇文章主要介紹了jQuery源碼分析之jQuery.fn.each與jQuery.each用法,較為詳細的分析了each的用法,非常具有實用價值,需要的朋友可以參考下2015-01-01jQuery響應(yīng)enter鍵的實現(xiàn)思路
當用戶在表單里數(shù)據(jù)完數(shù)據(jù)后,之間按enter鍵就可以執(zhí)行查詢或者保存的操作。實現(xiàn)的思路如下2014-04-04AspNet中使用JQuery上傳插件Uploadify詳解
Uploadify是JQuery的一個上傳插件,實現(xiàn)的效果非常不錯,帶進度顯示。不過官方提供的實例時php版本的,本文將詳細介紹Uploadify在Aspnet中的使用2015-05-05基于JQuery和DWR實現(xiàn)異步數(shù)據(jù)傳遞
這篇文章主要介紹了基于JQuery和DWR實現(xiàn)異步數(shù)據(jù)傳遞,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-10-10