Два асинхронных Ajax запроса
Все привет! Есть длительный Ajax запрос (номер 1):
$.ajax({
url: '/office/start-import-yml',
type: 'POST',
dataType: 'JSON',
async : true,
data: {
id: <?= $id ?>,
YII_CSRF_TOKEN: app.csrfToken
},
beforeSend: function() {
console.log('Start import function startImportXML()');
},
success: function(data) {
console.log(data);
},
error: function(e) {
console.log(e);
},
complete: function() {
}
})
и есть Ajax запрос (номер 2) который каждые 2 сек. делает запрос с целью определить прогресс загрузки:
let timerId = setTimeout(function tick() {
var message = '';
$.ajax({
url: '/office/get-progress-import/id/<?= $id ?>',
type: 'GET',
dataType: 'JSON',
async : true,
data: {
YII_CSRF_TOKEN: app.csrfToken
},
beforeSend: function() {},
success: function(data) {
if (data.message.progress > 0) {
var message = 'Выполенно: ' + data.message.progress + '%; Всего товаров: ' + data.message.offer_count + '; Импортированно: ' + data.message.import_count + '; Пропущено: ' + data.message.skip_count;
console.log(message);
$('#progressImportYML').html(message);
}
},
error: function(e) {
console.log(e);
},
complete: function() {}
});
timerId = setTimeout(tick, 2000);
}, 2000);
Запрос номер 1 получает статус pending т.к. длительный, а запросы номер 2 отправляется и все они тоже получают статус pending и я не получаю от них ответа. Вопрос: Как сделать так, чтобы запросы 2 не получали статус pending и выдавали ответ ?
Источник: Stack Overflow на русском