2011-03-09 40 views
0

我在iOS中使用圖api。 我發送請求到每個用戶在FB朋友們對時事:在facebook中的延遲圖api答案

爲(的NSDictionary *在朋友的朋友){

 NSLog(@"sending events request for %@", [friend objectForKey:@"id"]); 
     [facebook requestWithGraphPath: 
     [NSString stringWithFormat:@"%@/events&since=today&until=tomorrow&limit=10", [friend objectForKey:@"id"]] 
          andDelegate:self]; 
    } 

的第一個答案有5秒 延遲並且最後的答案是在兩個(!!)分鐘左右之後(對於500個請求 - 500個朋友)。

Facebook是否故意拖延所有信息?

非常感謝!

+0

500個HTTP請求?如果你也打我的API,我會放慢你的速度。 – ceejayoz 2011-03-09 21:19:33

回答

1

我想知道你是否知道Facebook批處理API?它旨在用於您發出多個請求時。我做了一個簡短的搜索,但找不到一個很好的鏈接指向你,所以我建議只搜索一下。

要考慮的另一件事是將您的Web請求放入另一個線程,在後臺啓動,當新數據可用時通知您的主線程(使用UI),以便可以更新顯示。就像ceejayoz說的那樣,500個請求很多,很可能會有一些速率限制正在進行。使用線索不會使你從他們的角度做得更好,但是你將能夠最大限度地減少延遲導致的對用戶的影響。在Facebook上一批API

+0

嗨,我沒有發現任何關於FB文檔中的批處理API ..除了一個職位被視爲其他API將被棄用... – 2011-03-10 15:05:46

+0

和線程,你認爲發送不同線程的請求組(可能使用不同的連接)會使它更快? – 2011-03-10 18:14:53

+0

嗯......看起來很奇怪,他們會離開新的API,但我也沒有找到任何文檔。至於線程,我的猜測是多個同時發生的請求將以同樣快的速度受到限制,並且您的IP可能會被阻止。至少如果我實施了速率限制,並且有人嘗試了同步請求解決方法,我會這樣想。你可能會得到它,但只有一段時間... – 2011-03-10 21:16:06