在調(diào)用一個jquery的ajax方法時我們有時會需要該方法返回一個值或者給某個全局變量賦值,可是我們發(fā)現(xiàn)程序執(zhí)行完后并沒有獲取到我們想要的值,這時很有可能是因為你用的是ajax的異步調(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以后才會返回result完成該方法的調(diào)用吨铸。若設(shè)為async:true,
則會未等到獲取data值就已經(jīng)返回了result。
另一個解決辦法就是將你的代碼直接寫到success方法里梨州。(根據(jù)你的業(yè)務(wù)并不是所有的都可以直接寫到success里的)痕囱。
注意:如果設(shè)定為async: false,就失去 ajax異步的優(yōu)點了哦。