Суть такая:
По нажатию кнопки мы делаем запрос на сервер, получаем данные и проверяем, если длина данных равна 500, то отправляем ещё раз (указываем отступ в 500) и т.д. пока данных не будет меньше 500 (что значит, что больше нет).
В итоге получаем массив данных, например длиной 4500.
Пока остановился на синхронных запросах, т.к. в асинхронных-данные приходят раньше всех объединений.
Хотелось бы узнать, как сделать это правильно, чтобы не "замораживать" страницу на несколько секунд(как при синхронных запросах).
Пример того, как я это делаю сейчас.
function getMails () {
var mails = [];
var page = 1;
function request () {
var result = false;
$.ajax(
url: 'какой-то урл/' + page,
async: false,
type: 'GET',
success: function (data) {
result = data.items;
}
});
return result;
}
function gluing () {
var part = request();
mails = mails.concat(part);
if (part.length >= 500) {
page++;
gluing();
}
}
gluing();
return mails;
}