Facebook API friends_get очень медленный - PullRequest
0 голосов
/ 20 апреля 2010

У меня есть приложение PHP, работающее в режиме iFrame. Я рендерил <fb:multi-friend-selector condensed="true"> внутри <fb:serverfbml> тегов. Это внутри PHP-файла, который вызывает функцию, которая получает список идентификаторов пользователей, используя $facebook->api_client->friends_get();. Селектор с несколькими друзьями рендерится очень хорошо, но когда я оставляю вызов friend_get () без комментариев, загрузка страницы занимает 15-20 секунд (подтверждается Firebug) Цель состоит в том, чтобы ограничить число пользователей, отображаемых в селекторе, путем создания списка идентификаторов пользователей, которые не отображаются, для использования в параметре exclude_ids селектора друзей. А поскольку это «exclude_ids», а не «include_ids», я не могу придумать, как обойти этот вызов API. Мне кажется, я должен что-то сделать, чтобы сделать вызов API быстрее, потому что я видел селекторы друзей, которые загружаются намного быстрее.

1 Ответ

1 голос
/ 29 мая 2010

После более чем месяца раздирающих волосы из-за этой проблемы я обнаружил довольно реальный обходной путь. Вызовы PHP API будут работать крайне медленно из любых ваших запросов AJAX. Скорее всего, это связано с отсутствием параметров Facebook или чем-то подобным.

Обходной путь работает следующим образом: вместо вызова функции API Facebook из файла PHP, вызываемого через AJAX, убедитесь, что вы изолировали все вызовы PHP в API Facebook от файла индекса, загружаемого при первой загрузке приложения. Сохраните возвращенные значения в переменную сеанса, и теперь вы можете загружать эти значения в любые последующие вызовы AJAX, которые вы делаете.

...