Сообщение от squid
|
Примерный мой алгоритм
|
Ну примерно так надо
$ajax({
data: {ids},
onsuccess: function( res ) {
request(res.lists, res.count);
}
})
function request(res, count){
let t0 = performance.now();
// Если от t0 прошло меньше 1 сек, делаем задержку до 1 сек.
const delay = () {
const t = performance.now() - t0;
dt = 1000 - (t - t0);
const t0 = t;
return new Promise ((resp) => {
if (dt > 0)
setTimeout (resp, dt);
else
resp();
})
}
// Запрос к серверу
const getajax (data) {
reurn new Promise ( (resp() => {
$ajax({
data: {data},
onsuccess: function(ret) {
resp(ret);
}
})
})
}
let p = Promise.resolve();
for (let i = 0; i < res.length; i++) {
// После каждых 3 запросов, делаем задержку, если необходимо
if (i && i % 3 === 0) p = p.then ( () => delay () );
p = p
.then ( () => getajax (res[i]))
.then ( (ret) => {document.getElementById("title").innerHTML = ...})
}
}