Javascript jQuery AJAX请求中的变量范围?

Javascript jQuery AJAX请求中的变量范围?,javascript,jquery,ajax,Javascript,Jquery,Ajax,好吧,我完全糊涂了。我肯定这是一个范围界定或结束的事情,但有人能解释为什么吗 $(document).ready(function() { var test = 0; var whatev = [1,2,3,4,5]; $.each(whatev, function(i, v) { test += 1; }); alert(test); }); 警报“5”和 警报0?为什么$中的匿名函数有权进行测试,而ajax调用中的匿名函数没有?在哪里

好吧,我完全糊涂了。我肯定这是一个范围界定或结束的事情,但有人能解释为什么吗

$(document).ready(function() {
    var test = 0;
    var whatev = [1,2,3,4,5];
    $.each(whatev, function(i, v) {
        test += 1;
    });
    alert(test);
});
警报“5”和

警报0?为什么
$中的匿名函数有权进行测试,而ajax调用中的匿名函数没有?在哪里定义匿名函数?

这是因为

$.ajax('http://example.com/').done();  
是异步的

function(data) {
    test += 1;
}   
在执行所有代码后调用。

这是因为

$.ajax('http://example.com/').done();  
是异步的

function(data) {
    test += 1;
}   
在执行所有代码后调用。

这是因为

$.ajax('http://example.com/').done();  
是异步的

function(data) {
    test += 1;
}   
在执行所有代码后调用。

这是因为

$.ajax('http://example.com/').done();  
是异步的

function(data) {
    test += 1;
}   

在执行所有代码后调用。

JQuery
的回调是同步的

function(data) {
    test += 1;
}   
然而,jqueryajax的回调(异步javascript和xml)是异步的

如果希望ajax功能同步,可以这样做:

$.ajax({
    type: "GET",
    url: "http://example.com/",
    async: false
})

JQuery
的回调是同步的

function(data) {
    test += 1;
}   
然而,jqueryajax的回调(异步javascript和xml)是异步的

如果希望ajax功能同步,可以这样做:

$.ajax({
    type: "GET",
    url: "http://example.com/",
    async: false
})

JQuery
的回调是同步的

function(data) {
    test += 1;
}   
然而,jqueryajax的回调(异步javascript和xml)是异步的

如果希望ajax功能同步,可以这样做:

$.ajax({
    type: "GET",
    url: "http://example.com/",
    async: false
})

JQuery
的回调是同步的

function(data) {
    test += 1;
}   
然而,jqueryajax的回调(异步javascript和xml)是异步的

如果希望ajax功能同步,可以这样做:

$.ajax({
    type: "GET",
    url: "http://example.com/",
    async: false
})

您可以使用回调,一切都将等待

循环等待ajax回调,警报等待循环完成

function request(callback){
        $.ajax('http://example.com/').done(function(data) {

             callback();
        });  
}

var y = 0;
function loop(whatev,callback){
   request(function(){
        test += 1;
        y++;
        if(y >= whatev.length){
            //stop looping and trigger callback (alert)
            callback();
        }else {
           loop(whatev);
            }
   });

}

$(document).ready(function() {
    var test = 0;
    var whatev = [1,2,3,4,5];
    loop(whatev,function(){
       alert(test);
    });
});

您可以使用回调,一切都将等待

循环等待ajax回调,警报等待循环完成

function request(callback){
        $.ajax('http://example.com/').done(function(data) {

             callback();
        });  
}

var y = 0;
function loop(whatev,callback){
   request(function(){
        test += 1;
        y++;
        if(y >= whatev.length){
            //stop looping and trigger callback (alert)
            callback();
        }else {
           loop(whatev);
            }
   });

}

$(document).ready(function() {
    var test = 0;
    var whatev = [1,2,3,4,5];
    loop(whatev,function(){
       alert(test);
    });
});

您可以使用回调,一切都将等待

循环等待ajax回调,警报等待循环完成

function request(callback){
        $.ajax('http://example.com/').done(function(data) {

             callback();
        });  
}

var y = 0;
function loop(whatev,callback){
   request(function(){
        test += 1;
        y++;
        if(y >= whatev.length){
            //stop looping and trigger callback (alert)
            callback();
        }else {
           loop(whatev);
            }
   });

}

$(document).ready(function() {
    var test = 0;
    var whatev = [1,2,3,4,5];
    loop(whatev,function(){
       alert(test);
    });
});

您可以使用回调,一切都将等待

循环等待ajax回调,警报等待循环完成

function request(callback){
        $.ajax('http://example.com/').done(function(data) {

             callback();
        });  
}

var y = 0;
function loop(whatev,callback){
   request(function(){
        test += 1;
        y++;
        if(y >= whatev.length){
            //stop looping and trigger callback (alert)
            callback();
        }else {
           loop(whatev);
            }
   });

}

$(document).ready(function() {
    var test = 0;
    var whatev = [1,2,3,4,5];
    loop(whatev,function(){
       alert(test);
    });
});


每个调用都是同步的,Ajax调用是异步的http://example.com/“)
是异步的。@epascarello:ahhh,对。。。。有人没有足够的咖啡。请小心
每个
循环中的AJAX调用。您正在使用自己的服务器。每个服务器都是同步的,Ajax调用是异步的http://example.com/“)
是异步的。@epascarello:ahhh,对。。。。有人没有足够的咖啡。请小心
每个
循环中的AJAX调用。您正在使用自己的服务器。每个服务器都是同步的,Ajax调用是异步的http://example.com/“)
是异步的。@epascarello:ahhh,对。。。。有人没有足够的咖啡。请小心
每个
循环中的AJAX调用。您正在使用自己的服务器。每个服务器都是同步的,Ajax调用是异步的http://example.com/“)
是异步的。@epascarello:ahhh,对。。。。有人没有足够的咖啡。请小心
每个
循环中的AJAX调用。您正准备使用自己的服务器。@Andrew Np,很乐意帮助。@Andrew Np,很乐意帮助。@Andrew Np,很乐意帮助。@Andrew Np,很乐意帮助。感谢您指出异步选项。。。现在真是魅力四射!感谢您指出异步选项。。。现在真是魅力四射!感谢您指出异步选项。。。现在真是魅力四射!感谢您指出异步选项。。。现在真是魅力四射!