1. 程式人生 > >ajax方法如何給全域性變數賦值

ajax方法如何給全域性變數賦值

在呼叫一個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;
        }
    })
    return result;
以上方法是ajax的同步呼叫,只有在獲取到了data值並賦值給result以後才會返回result完成該方法的呼叫。若設為async:true,
則會未等到獲取data值就已經返回了result。
另一個解決辦法就是將你的程式碼直接寫到success方法裡。(根據你的業務並不是所有的都可以直接寫到success裡的)。
 
注意:如果設定為  async: false,就失去 ajax非同步的優點了哦。