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