0

グラフ API を使用してアルバムを取得しました。すべてのアルバムを自分の Web サイトに取得しましたが、ページを更新するとアルバムの位置が変わります。なぜそれが起こるべきですか?

ここにスクリプトを添付します。

<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 に答える