Тема: JQuerry Deferred
Показать сообщение отдельно
  #1 (permalink)  
Старый 20.01.2017, 12:12
Аспирант
Отправить личное сообщение для alexandr2006 Посмотреть профиль Найти все сообщения от alexandr2006
 
Регистрация: 30.01.2013
Сообщений: 54

JQuerry Deferred
Имеется 3 блока по горизонтали, в которые надо запихать блоки с новостями. Новостные блоки разной высоты, подгружаются ajax, число подгружаемых блоков ограничено (т.е. нельзя за один проход подгрузить новости на всю страницу)


Код:
function load_elem(items){
if (app.calcul) return;

app.calcul = true;

var promise = $.when();
$.each(items, function(index, item){
    promise = promise.then(function(){
        return $.getJSON(item.url);
    }).then(function(data){

        $('#'+item.id).append(Mustache.render($('#'+item.template).html(),view));
        //*****
    });
});
promise.then(function(){
    console.log('OK');
    app.calcul = false;
});
}
Исходные данные
Код:
    var items_collection = [{
        "id" : "mini-article",
        "template" : "mini-article-template",
        "url" : "bla-bla",
        "autocomplete": false // - значит новости не нужно подгружать до конца страницы
    },
    {
        "id" : "popular-lists",
        "template" : "popular-lists-template",
        "url" : "bla-bla",
        "autocomplete": true  
    },
    {
        "id" : "pic-day-lists",
        "template" : "pic-day-lists-template",
        "url" : "bla-bla",
        "autocomplete": true   
    }];
Запуск:
Код:
    load_elem([items_collection[0], items_collection[1], items_collection[2]]);

И вот я не пойму как сделать, чтобы там, где //***** - в случае если есть свободное место под новости и utocomplete=true, запускался бы этот же запрос и пока он не выполнился - никакие другие новости не подгружались бы, а потом наступал черед items_collection[1] и по аналогии..
Ответить с цитированием