Jquery $(文档).ready和xhr

Jquery $(文档).ready和xhr,jquery,xmlhttprequest,document-ready,Jquery,Xmlhttprequest,Document Ready,我使用jquery编写代码。我的问题是$(document).ready(function()),它调用两个执行xhr请求的函数 <script type="text/javascript"> $(document).ready(function() { getIdCategories(); getnameCategories(); }); </script> 以及: 函数getnameCategories() { var request=new XMLHttpRequ

我使用jquery编写代码。我的问题是$(document).ready(function()),它调用两个执行xhr请求的函数

<script type="text/javascript">
$(document).ready(function() {
getIdCategories();
getnameCategories();
});
</script>
以及:

函数getnameCategories() { var request=new XMLHttpRequest();
如果(i
Ajax
调用只是
async
请求,这意味着您无法控制先完成哪个请求的顺序。但您仍然可以通过添加另一个
回调来解决它

$(document).ready(function() {
    getIdCategories(function(){
        getnameCategories();
    }); 
});

// in 'getIdCategories'
function getIdCategories(cb) {
    if (/* ajax complete */) {
        // fire callback function
        cb && cb();
    }
}

Ajax
调用是一个简单的
async
请求,这意味着您无法控制先完成哪个请求的顺序。但您仍然可以通过添加另一个
回调来解决它

$(document).ready(function() {
    getIdCategories(function(){
        getnameCategories();
    }); 
});

// in 'getIdCategories'
function getIdCategories(cb) {
    if (/* ajax complete */) {
        // fire callback function
        cb && cb();
    }
}

看看
$。ajax

这比当地的方式容易得多

AJAX意味着异步JavaScript和XML,其中异步意味着脚本不会等待请求完成。这意味着两个请求同时启动,您无法知道哪一个更快。但是您可以从第一个请求开始在回调函数中启动第二个请求,因此第二个请求在第一个请求完成时开始

$(function(){
    $.ajax({
        type: 'GET',
        url: '',
        data: {},
        success:function(data){
            console.log('First request done');
            /* Start second request HERE */
        }

    });
});
$。ajax
还提供同步请求。对于同步请求,脚本将等待请求完成:

$(function(){
    $.ajax({
        type: 'GET',
        url: '',
        data: {},
        async: false
    });
    console.log('First request done');
    /*Start second request HERE */
});

看看
$。ajax

这比当地的方式容易得多

AJAX意味着异步JavaScript和XML,其中异步意味着脚本不会等待请求完成。这意味着两个请求同时启动,您无法知道哪一个更快。但是您可以从第一个请求开始在回调函数中启动第二个请求,因此第二个请求在第一个请求完成时开始

$(function(){
    $.ajax({
        type: 'GET',
        url: '',
        data: {},
        success:function(data){
            console.log('First request done');
            /* Start second request HERE */
        }

    });
});
$。ajax
还提供同步请求。对于同步请求,脚本将等待请求完成:

$(function(){
    $.ajax({
        type: 'GET',
        url: '',
        data: {},
        async: false
    });
    console.log('First request done');
    /*Start second request HERE */
});

jQuery的AJAX函数有一个名为async的参数,可以将该参数设置为false以强制执行同步行为

$(function(){
$.ajax({
    type: 'GET',
    url: '',
    async: false,
    data: {},
    success:function(data){
        console.log('First request done');
        /* Start second request HERE */
    }

});
}))

//调用另一个ajax函数


这应该允许您控制执行顺序。除非第一个调用返回,否则第二个调用将不会启动

jQuery的AJAX函数有一个名为async的参数,您可以将该参数设置为false以强制执行同步行为

$(function(){
$.ajax({
    type: 'GET',
    url: '',
    async: false,
    data: {},
    success:function(data){
        console.log('First request done');
        /* Start second request HERE */
    }

});
}))

//调用另一个ajax函数


这将允许您控制执行顺序。。除非第一个调用返回,否则第二个调用将不会启动,这是意料之中的:Ajax调用是异步的。您无法保证先完成哪个。既然已经有了jQuery及其
$.ajax
方法,为什么还要使用本机
XMLHttpRequest
对象?这就像买了一栋新房子,晚上在街上睡觉。为什么不在XHR中使用jQuery呢?这是意料之中的:Ajax调用是异步的。您无法保证先完成哪个。既然已经有了jQuery及其
$.ajax
方法,为什么还要使用本机
XMLHttpRequest
对象?这就像买了一栋新房子,晚上在街上睡觉。为什么不在XHR中使用jQuery呢?您的代码不起作用。语法错误,在
async:false之后缺少
,您的代码不工作。语法错误,在
async:false之后缺少