淺析jquery ajax異步調(diào)用方法中不能給全局變量賦值的原因及解決方法
在調(diào)用一個(gè)jquery的ajax方法時(shí)我們有時(shí)會(huì)需要該方法返回一個(gè)值或者給某個(gè)全局變量賦值,可是我們發(fā)現(xiàn)程序執(zhí)行完后并沒(méi)有獲取到我們想要的值,這時(shí)很有可能是因?yàn)槟阌玫氖莂jax的異步調(diào)用async:true(默認(rèn)情況),如:
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以后才會(huì)返回result完成該方法的調(diào)用。若設(shè)為async:true,
則會(huì)未等到獲取data值就已經(jīng)返回了result。
另一個(gè)解決辦法就是將你的代碼直接寫到success方法里。(根據(jù)你的業(yè)務(wù)并不是所有的都可以直接寫到success里的)。
注意:如果設(shè)定為 async: false,就失去 ajax異步的優(yōu)點(diǎn)了哦。
相關(guān)文章
深入研究jQuery圖片懶加載 lazyload.js使用方法
這篇文章主要介紹了jQuery圖片懶加載 lazyload.js使用方法,通過(guò)設(shè)置臨界點(diǎn),占位符,設(shè)置事件來(lái)觸發(fā)加載等等來(lái)講解lazyload.js的使用,具體操作步驟大家可查看下文的詳細(xì)講解,感興趣的小伙伴們可以參考一下。2017-08-08
jquery實(shí)現(xiàn)tab鍵進(jìn)行選擇后enter鍵觸發(fā)click行為
本文主要介紹了jquery鍵盤事件實(shí)現(xiàn)tab鍵進(jìn)行選擇后enter鍵觸發(fā)click行為的方法,這種使用場(chǎng)景為當(dāng)首頁(yè)有幾個(gè)鏈接需要選擇的時(shí)候,使用鍵盤就可以進(jìn)行觸發(fā)行為。下面跟著小編一起來(lái)看下吧2017-03-03
jQuery選中select控件 無(wú)法設(shè)置selected的解決方法
select 控件的 option用jQuery動(dòng)態(tài)添加,然后選中某項(xiàng)時(shí),IE6不能執(zhí)行(火狐沒(méi)問(wèn)題),用try{}catch(err){alert(err.description);}提示為“無(wú)法設(shè)置selected屬性 未指明的錯(cuò)誤”2010-09-09
jQuery插件expander實(shí)現(xiàn)圖片翻轉(zhuǎn)特效
本文給大家分享的是一款基于jQuery插件expander實(shí)現(xiàn)圖片翻轉(zhuǎn)特效,一共有6種不同的圖片翻轉(zhuǎn)樣式,十分的炫酷,有需要的小伙伴可以參考下。2015-05-05
jquery+ajax請(qǐng)求且?guī)Х祷刂档拇a
這兩天的工作內(nèi)容不多,基本是關(guān)于jquery中ajax的。之前一直都是寫的最簡(jiǎn)單的ajax請(qǐng)求,并沒(méi)關(guān)注怎么獲取ajax返回值的問(wèn)題。2015-08-08
jQuery 插件開(kāi)發(fā) 其實(shí)很簡(jiǎn)單
jQuery已經(jīng)被廣泛使用,憑借其簡(jiǎn)潔的API,對(duì)DOM強(qiáng)大的操控性,易擴(kuò)展性越來(lái)越受到web開(kāi)發(fā)人員的喜愛(ài),我在社區(qū)也發(fā)布了很多的jQuery插件2009-07-07

