2012-08-17 2 views
0

그래프 API를 사용하여 앨범을 가져 왔으며, 모든 앨범을 웹 사이트에 가져 왔지만 페이지를 새로 고침 할 때 앨범의 위치가 바뀌 었습니다. 왜 그렇게 될까요?페이스 북 앨범을 웹 사이트에 삽입합니다.

여기에 내 스크립트를 첨부합니다.

<script> 
$(document).ready(function() { 
    var albumIdsUrl = "https://graph.facebook.com/<myname>/albums?callback=?"; 

    $.getJSON(albumIdsUrl, function(data) { 
     var len = data.data.length; 
     for(var i=0;i<len;i++){ 
      var aid = data.data[i].id; 
      getAlbumCoverPhoto(data.data[i].cover_photo, data.data[i].id, data.data[i].name, data.data[i].count); 
     } 
    }); 

}); 

function getAlbumCoverPhoto(coverPhoto, albumId, albumName, count) { 
     var coverPhotoUrl = "https://graph.facebook.com/" + coverPhoto + "?callback=?"; 
      $.getJSON(coverPhotoUrl, function(coverPhotoData) { 
       if(typeof(coverPhotoData.picture)!="undefined"){ 
         htmlData = '<li><figure><a class="imageLink" href="fb_album_photos.html?id='+ albumId + '"><img src="' + coverPhotoData.picture + '" /></a></figure><figcaption>'+albumName+'</br>'+count+' Photos</figcaption></li>'; 
         $('#FBalbum').append(htmlData); 
       } 
      });    
    } 
</script> 

답변

0

반환되는 데이터가 항상 동일한 순서가 아니므로 일관된 결과를 얻으려면 정렬이 필요합니다.

이 잘 작동하는 것 같다 (하지만 조금 정리 될 수있다) : 빠른 응답

$.getJSON(albumIdsUrl, function(data) { 
    var len = data.data.length; 
    data.data.sort(function(a, b) 
    { 
     if (a.id == b.id) return 0; 
     if (a.id < b.id) 
      return -1; 
     else 
      return 1; 
    }); 
    for(var i=0;i<len;i++){ 
     var aid = data.data[i].id; 
     getAlbumCoverPhoto(data.data[i].cover_photo, data.data[i].id, data.data[i].name, data.data[i].count); 
    } 
}); 
+0

감사합니다. 위의 코드를 시도하고 동일한 문제가 발생했습니다 – user1606656

+0

제 대답에 정렬 함수를 편집했는데 그 결과가 제가 가지고있는 것보다 일관성이있는 것처럼 보입니다. – Oxin

관련 문제