У меня есть функция ajax, и я ожидаю, что она будет работать 1912 раз, но по какой-то причине она работает только один раз. Я использую startAt и stopAt, чтобы определить, когда он должен перестать работать, но по какой-то причине он не работает. Что я делаю не так?Ajax работает только один раз
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script>
<script type = "text/javascript">
function callAjax(gotoUrl, link, startAt, stopAt, output) {
$.ajax({
type: "POST",
url: gotoUrl,
data: { link : link },
error: function(xhr,status,error){
alert("error");
},
success:function(data) {
document.getElementById(output).innerHTML += startAt;
},
complete:function(data) {
startAt++;
var link = data;
if (startAt < stopAt) {
setTimeout(function(){
callAjax(gotoUrl, link, startAt, stopAt, output)
}, 100);
}
}
});
} //end of function callAjax()
</script>
<body onload = 'callAjax("test1.php", "link", 1, 1912, "output")'>
<div id = "output"></div>
Результат:
1
Ожидаемый результат:
1912
Вы помещаете startAt ++; внутри асинхронного вызова, почему бы не поставить его для того, чтобы фактически выполнить вызов ajax? – jstuartmilne
Зачем вам нужен вызов 'setTimeout()'? Просто позвоните в функцию ... – Chris
@ Крис Я хочу паузу на 100 миллисекунд. – frosty