AJAX之后全局值返回原始值(jQuery)

时间:2011-10-18 15:22:24

标签: javascript jquery ajax global-variables

我对jQuery比较陌生,我试图解决这个代码但是经常失败,我面临的问题是,我有一个gloval数组(Roles_Permission),我能够在我的AJAX请求中使用它,我也可以对数组的内容进行更改,但是当我出来的那一刻,所有的全局值都回归原始的,为什么?!?需要帮忙。请查看以下代码,

// Global Variable
var Role_Permission = {
    "Value1" : true;
    "Value2" : true;
    "Value3" : true;
}

现在我有一个如下功能,

function checkRoles(){
    requestData(
        "roleData",
        { roleName: "testUser"},
        function(result){
            Role_Permission["Value2"] = false;
            alert(Role_Permission["Value2"]);
        }
    });

    alert(Role_Permission["Value2"]);
}

AJAX外部的警报将Value2的值返回为True但是,在其中返回为FALSE,为什么?!?请帮忙

三江源

2 个答案:

答案 0 :(得分:6)

因为AJAX请求是异步运行的,所以这就是为什么你给它一个回调,一旦完成就会被调用。即使您刚发送的请求仍在运行,回调外的所有内容都会立即执行。这就是为什么底部警报仍然具有旧值,但回调内部的值是新值。

答案 1 :(得分:4)