Я пытаюсь сделать следующее:
Сначала Ajax загружает CSV-файл и получает список всех продуктов. Затем в случае успеха он проходит цикл и вызывает другой ajax, который загружает эти продукты.
Проблема:
Когда он проходит через цикл, он замораживает браузер и ждет, пока каждый продуктбыть загружен, а затем распечатывает идентификаторы.
Что мне нужно:
Чтобы избавиться от зависания браузера и когда он может распечатать каждый идентификатор после каждого продукта былзагружено.
Код:
var data = new FormData();
data.append('file', jQuery('#item_data')[0].files[0]);
data.append('action', 'csv_upload');
jQuery.ajax({
url: ajaxurl,
data: data,
timeout: 3000,
cache: false,
contentType: false,
processData: false,
type: 'POST',
dataType: 'json',
success: function (data) {
jQuery( ".wrap .all" ).html(data.information.length);
jQuery.each(data.information, function (i, elem) {
add_item(elem, i);
});
jQuery( "#results" ).append( "<p style='color:green;'>The end!</p>" );
}
});
function add_item(elem, i){
var data = new FormData();
data.append('action', 'product_upload');
data.append('file_cont', JSON.stringify(elem));
jQuery.ajax({
async: false,
url: ajaxurl,
data: data,
type: 'POST',
processData: false,
contentType: false,
dataType: 'json',
success: function (response) {
jQuery( "#results" ).append( "<span>"+ data.message +"</span>" );
}
});
jQuery( ".wrap .count" ).html(i+1);
}