0

PHPアプリケーションをiFrameモードで実行しています。タグの<fb:multi-friend-selector condensed="true">内側をレンダリングしています。<fb:serverfbml>これは、を使用してユーザーIDのリストを取得する関数を呼び出すPHPファイル内にあります$facebook->api_client->friends_get();。マルチフレンドセレクターは問題なくレンダリングされますが、friend_get()呼び出しをコメント解除したままにすると、ページの読み込みに15〜20秒かかります(Firebugで確認済み)。目標は、フレンドセレクターのexclude_idsパラメーターで使用するために、表示されないユーザーIDのリストを作成することにより、セレクターに表示されるユーザーの数を制限することです。また、「include_ids」ではなく「exclude_ids」であるため、このAPI呼び出しを回避する方法を考えることはできません。フレンドセレクターの読み込みがはるかに速いのを見たことがあるので、API呼び出しを高速化するためにできることがあるはずです。

4

1 に答える 1

1

この問題について1か月以上髪を引き裂いた後、私はかなり実行可能な回避策を発見しました。PHP API呼び出しは、AJAXリクエストからの実行が非常に遅くなります。これは、Facebookのパラメーターが欠落していること、または他のそのようなナンセンスと関係がある可能性があります。

回避策は次のように機能します。AJAXを介して呼び出されるPHPファイルからFacebookAPI関数を呼び出す代わりに、Facebook APIへのすべてのPHP呼び出しを、アプリが最初にロードされたときにロードされたインデックスファイルに分離するようにしてください。戻り値をセッション変数に保存すると、後続のAJAX呼び出しでそれらの値をロードできるようになります。

于 2010-05-29T01:27:54.193 に答える