1. 程式人生 > >jquery ajax success 函數 異步調用方法中不能給全局變量賦值的原因及解決辦法

jquery ajax success 函數 異步調用方法中不能給全局變量賦值的原因及解決辦法

tex span var getc res syn ucc 解決辦法 asp

在調用一個jquery的ajax方法時我們有時會需要該方法返回一個值或者給某個全局變量賦值,可是我們發現程序執行完後並沒有獲取到我們想要的值,這時很有可能是因為你用的是ajax的異步調用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; // 註意這裏不可以在前面加var 關鍵字
}
})
return result;

以上方法是ajax的同步調用,只有在獲取到了data值並賦值給result以後才會返回result完成該方法的調用。若設為async:true,
則會未等到獲取data值就已經返回了result。

另一個解決辦法就是將你的代碼直接寫到success方法裏。(根據你的業務並不是所有的都可以直接寫到success裏的)。

jquery ajax success 函數 異步調用方法中不能給全局變量賦值的原因及解決辦法