2010-04-20 3 views
0

У меня есть приложение 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, потому что видел знакомые селектора, которые загружаются намного быстрее.Facebook API friends_get чрезвычайно медленный

ответ

1

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

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

Смежные вопросы