Вызов остальных API для цикла и обработки приоритета для видимой области с использованием угловых js - PullRequest
0 голосов
/ 27 февраля 2019

У меня есть массив, который имеет более 400 идентификаторов данных, основанных на этом фруктовом идентификаторе. Я запустю цикл оставшихся API, чтобы получить соответствующую информацию о каждом фрукте. Для небольшого масштаба списка, который я могу достичь, ноОгромное количество идентификаторов не удалось достичь api.so я планировал достичь 5 на 5, если один вызов API сделан, значит, мы должны добавить еще один вызов API в loop.so проблема здесь, я не могу, как добитьсяэтот, а также мне нужен в случае, если пользователь прокручивает вниз до некоторой области, означает, что я должен сделать вызов API для видимой области и хочу дать высокий приоритет для этого. Пожалуйста, предоставьте ваши предложения и помощь по этому вопросу. Ниже приведен пример кода:

function getidList() {
              var dList = SessionService.fList();
           //dList have the fruit ids once its done

            if (dList.length > 0) {
                for (var i = 0; i<=5; i++) {
                                       var data = dList[i];
//here i have call the service for api call//
         fruitService.getFruitDetails(data, sessionID, getresponse);



                }
            }
//following code is service
function getFruitDetails(){
                var Data = { SessionID: sessionId, fID: fruit}
                http.callEx('GetallListData', Data).then(function (response) {
                    console.info("api", response);
                    dataobj[response.fruit.ID] = getfListData(response.fruitData);
                    fruitListModel.push(dataobj);
                    return getresponse(fruitListModel);
                });
}

, так что проблема здесь в том, что без зависания страницы я загружаю страницу. И я не знаю, как обработать вызов API как оптимизируемый, как только это будет сделано с первыми 5 и следующими 5, так что, давая высший приоритетдля просмотра области. Просьба предоставить предложение и некоторые идеи

1 Ответ

0 голосов
/ 27 февраля 2019

Что касается использования, вы можете попробовать загрузить данные 5 на 5, как показано ниже:

function getidList() {

var dList = SessionService.fList();

var dlength = dList.length;

if (dlength > 0) {
    var data = [];
    for (var i = 0; i < dlength; i++) {

        data.push(dList[i]);

        if(i%5 === 0 || i === dlength - 1) {

            fruitService.getFruitDetails(data, sessionID, getresponse); // not your function signature though

            data = [];

        }
    }
}

}

или вы можете загрузить данные по одному, когда часть элемента видна вviewport.

Надеюсь, это немного поможет

...