Facebook FQLを使用して、ユーザーのニュースフィードから最初の50件の投稿(友達による投稿)と、各友達のプロフィール情報を取得しようとしています。2つのクエリがあり、合計10秒の処理があります。
SELECT actor_id, message FROM stream
WHERE filter_key IN
(SELECT filter_key FROM stream_filter WHERE uid= me() AND type='newsfeed')
AND actor_id in (SELECT uid2 FROM friend WHERE uid1 = me())
LIMIT 50
このクエリは、メッセージが「」であってもユーザーを返します(メッセージとして「」を含む行を除外するNOT演算子が見つかりませんでした)
2番目のクエリ:
SELECT pic_big, name,url from profile WHERE id IN
(SELECT actor_id, message FROM stream WHERE filter_key IN
(SELECT filter_key FROM stream_filter WHERE uid= me()
AND type='newsfeed')
AND actor_id in (SELECT uid2 FROM friend WHERE uid1 = me()))
LIMIT 50
私はデータを取得する他の方法(クイック)を試しましたが、ランダムな順序でデータを返します(Facebookは、データが入力されたとおりに出力されることを保証しません)。
ウェブサイトに「読み込み中」のアニメーションを配置することはできますが、これは最適化できると思うので、配置したくありませんが、方法がわかりません。
以前はグラフAPIを使用していましたが、結果を自分で処理する必要があり、非常に非効率的でした(30秒以上かかる)。