有没有办法控制jquery ajax调用速度

时间:2016-10-02 01:44:47

标签: javascript jquery ajax

我有一个网站,当页面加载时会向后端api发送很多api请求。我意识到一次发送所有api请求并不是一个好主意。所以我的问题是: 是否有任何易于使用的配置jquery Ajax来控制api请求发送速度,例如一次两个或一次一个。 谢谢 弗兰克

1 个答案:

答案 0 :(得分:1)

要在上一个请求完成后立即执行每个请求(一次一个),只需将它们链接起来:

let numThings = 10;

function getThing() {
    $.get("url").then(function(response) { 
        console.log(response);
        numThings--;
        if (numThings > 0) { getThing(); }
    });
}

getThing();

如果请求是针对不同的网址,或者您希望对同一网址发出不同的请求:

function getFirstThing() {
    $.get("url").then(function(response) { 
        console.log(response);
        getSecondThing();
    });
}

function getSecondThing() {
    $.get("url").then(function(response) { 
        console.log(response);
        getThirdThing();
    });
}
...

getFirstThing();

你可以这样简洁地写出来:

$.get("url").then(response => { 
    console.log(response);
    $.get("url").then(response => {
        console.log(response);
    });
});

如果这个太快或您想在设定的时间间隔内将它们分开,只需使用setTimeout

function getFirstThing() {
    $.get("url").then(function(response) { 
        console.log(response);
    });
}

function getSecondThing() {
    $.get("url").then(function(response) { 
        console.log(response);
    });
}

getFirstThing();
setTimeout(getSecondThing, 1000);

请注意,我在此处使用$.get简写,但如果您需要,可以使用相同的$.ajax