Код: Выделить всё
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
Мобильная версия