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>
4

1 回答 1

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);
   }
}); 
于 2012-08-17T12:48:32.903 回答