Как обновить offset в vk api?

347
04 мая 2017, 14:56

Есть функция loadPhoto которая принимает id пользователя, id альбома и offset. Если offset не передан то по дефолту он равен 0. В ней вызываем метод vk api с настройками,загружаем по 150 фото.

В обработчике на клик мы передаем в loadPhoto только id-шки.

В обработчике на скролл с триггером вызываем loadPhoto и там уже необходимо указывать offset для подгрузки новых фотографий.

drawPhoto просто функция отрисовки.

Проблема вот в чем: как обновлять offset чтобы подгружать новые фото и как только все фото которые есть в альбоме будут загружены остановить загрузку.

Пока дошел до того что мы проверяем полученные данные с вк и если их длина все время = 150 то в аргумент offset будет падать += 150 затем берем пустую переменную и присваиваем ей offset и ее передаем в аргумент в обработчике на скролл. Работает так себе , подгрузило больше фото чем есть в альбоме.

function loadPhoto(profileID, albumID, offset) { 
  albumName = albumID; 
  if (typeof offset == 'undefined') { 
    offset = 0; 
  } 
 
  VK.api('photos.get', { 
    v: 5.62, 
    owner_id: profileID, 
    album_id: albumID, 
    offset: offset, 
    rev: 1, 
    photo_sizes: 1, 
    count: 150 
  }, function startLoadPhoto(result) { 
    drawPhoto(result.response.items); 
    if (result.response.items.length == 150) { 
      offset += 150; 
      setOffset = offset; 
    } 
  }); 
 
};