2013-06-28 8 views
0

Итак, я использую приведенный ниже код, чтобы сначала получить друзей пользователей, а затем использовать идентификаторы друзей пользователей, чтобы генерировать количество общих друзей, которые у них есть. Ясно, что повторение всех друзей и сравнение их каждый раз - это длительный процесс, но он работает. Однако на загрузку страницы требуется некоторое время. Как уменьшить время, необходимое или оптимизировать следующий код?Получение числа общих друзей с помощью Facebook Graph API

function getFriends() 

    { 
     FB.api('/me/friends', function(response) { 
     friendCount = response.data.length; 
     $("h2").append(friendCount+ ' friends'); 
     if(response.data) { 
     $.each(response.data,function(index,friend) { 
      FB.api('/me/mutualfriends/'+friend.id, function(mutualfriends) { 
      $("#results").append('<ul><li>' + friend.name + ' has id:' + friend.id + ' has mutual friends: ' + mutualfriends.data.length + '</li></ul>'); 
      $("#results").append('<img src="http://graph.facebook.com/' + friend.id + '/picture" />'); 
      }); 

     }); 
    } else { 
     console.log("Error!"); 
    } 
    }); 
    } 

ответ

7

Я знаю, что это действительно старый вопрос, но я все еще добавляю этот ответ для тех, кто может в конечном итоге посмотреть здесь.
Это оптимизированный способ получить количество общих друзей, использующих FQL.

select mutual_friend_count,uid,name from user where uid in 
(select uid2 from friend where uid1=me()) order by mutual_friend_count desc 
+0

+1 ТОЧНО, что мне нужно! - этот ответ должен быть принят. –