Задержка или ограничение цикла вызовов AjaxJavascript

Форум по Javascript
Ответить
Anonymous
 Задержка или ограничение цикла вызовов Ajax

Сообщение Anonymous »

У меня на сайте есть небольшая функция Ajax, которая делает одно и то же для всех загружаемых элементов списка. Моя проблема в том, что список иногда содержит более 100 элементов, и если он выполняет вызовы Ajax, я получаю ОШИБКУ 503, поэтому это перегружает сервер. Я просто хочу, чтобы, скажем, 5 вызовов выполнялись параллельно или, по крайней мере, делали некоторую задержку между вызовами... Я не эксперт по JS, я пробовал это после поиска в Google, но это неправильно, я получил «Неожиданный идентификатор: сон» ошибка...

Код: Выделить всё

async function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}

function genContentSecondStep(){
var list = document.getElementById("mylist").value;

var splitList = list.split(";");
for(var element of splitList){
var trimStr = element.trim();
if(trimStr != ""){
callApi('gen-content', trimStr);
await sleep(1000);
}
}
}

function callApi(input, element = null) {
var prm = "";
var content = document.getElementById("generatedContent").value;

if (prm.length == 0 && input == 'generate-list') {
document.getElementById("generatedContent").innerHTML = "";
return;
} else {
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("generatedContent").innerHTML += this.responseText;
}
};

xmlhttp.open("GET", "api-call.php?func=" + input + "&prm=" + element + "&content=" + content, true);

xmlhttp.send();
}
}
Как это сделать? Возможно ли это вообще? Спасибо.
РЕДАКТИРОВАТЬ: api-call.php работает нормально, и если я ограничу список несколькими элементами или выполню предыдущие ошибочные элементы через некоторое время, это тоже нормально, так что количество вызовов Ajax, к сожалению, является проблемой для сервера.
EDIT2.: "спасибо" за дубликат, но даже не уверен, что ожидание решает проблему, это было ОДНО из моих первых идей только

Подробнее здесь: https://stackoverflow.com/questions/793 ... y-or-limit
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»