0

そこで、以下のコードを使用して、最初にユーザーの友達を取得し、次にユーザーの友達 ID を使用して、相互の友達の数を生成します。明らかに、すべての友人を反復して毎回比較するのは時間のかかるプロセスですが、うまくいきます。ただし、ページの読み込みに時間がかかります。かかる時間を短縮したり、次のコードを最適化するにはどうすればよいですか?

    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!");
    }
    });
    }
4

2 に答える 2

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
于 2013-11-09T11:16:02.417 に答える
0

Facebook Batch API を使用する必要があります。これを使用すると、より多くのリクエストを 1 つのキューに入れ、レイテンシ コストを 1 回だけ支払うことができます。https://developers.facebook.com/docs/reference/api/batch/

于 2013-09-20T17:05:37.353 に答える