淺析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圖片懶加載 lazyload.js使用方法
這篇文章主要介紹了jQuery圖片懶加載 lazyload.js使用方法,通過設(shè)置臨界點,占位符,設(shè)置事件來觸發(fā)加載等等來講解lazyload.js的使用,具體操作步驟大家可查看下文的詳細講解,感興趣的小伙伴們可以參考一下。2017-08-08
jquery實現(xiàn)tab鍵進行選擇后enter鍵觸發(fā)click行為
本文主要介紹了jquery鍵盤事件實現(xiàn)tab鍵進行選擇后enter鍵觸發(fā)click行為的方法,這種使用場景為當(dāng)首頁有幾個鏈接需要選擇的時候,使用鍵盤就可以進行觸發(fā)行為。下面跟著小編一起來看下吧2017-03-03
jQuery選中select控件 無法設(shè)置selected的解決方法
select 控件的 option用jQuery動態(tài)添加,然后選中某項時,IE6不能執(zhí)行(火狐沒問題),用try{}catch(err){alert(err.description);}提示為“無法設(shè)置selected屬性 未指明的錯誤”2010-09-09
jQuery插件expander實現(xiàn)圖片翻轉(zhuǎn)特效
本文給大家分享的是一款基于jQuery插件expander實現(xiàn)圖片翻轉(zhuǎn)特效,一共有6種不同的圖片翻轉(zhuǎn)樣式,十分的炫酷,有需要的小伙伴可以參考下。2015-05-05

