在我提供简短背景时请耐心等待:
所以问题是如何在使用来自Facebook / LinkedIn的数据时让我的应用程序快速运行?
如果您可以分享您的经验,或者有一个使用Facebook / LinkedIn大量数据的网站的示例,我很乐意听到。
答案 0 :(得分:3)
具体来说,他们不允许在我的应用程序上保存用户数据(好吧,Facebook允许缓存。链接不允许甚至缓存)。
这不是真的...... http://developer.linkedin.com/documents/linkedin-apis-terms-use:
B中。仅将内容存储为允许,3。为性能缓存:
要改善会员体验,您可以缓存LinkedIn内容,但不得超过原始请求超过24小时。这种有限的缓存权限仅出于性能原因。
答案 1 :(得分:3)
当你谈到让你的应用程序“快速”时,请注意“快速”可能意味着“高吞吐量”或“低延迟”,并且两者之间存在很大差异。为延迟(每个用户应该服务的速度)和吞吐量(每单位时间应该能够服务的用户数量)设置性能目标会很好。
如果从FB / LinkedIn获取数据是吞吐量的瓶颈,
如果从FB / LinkedIn获取数据是延迟的瓶颈,
如果您绝对必须拥有来自FB / LinkedIn的数据XYZ来为用户服务,并且单个API请求的延迟为N秒,并且您为每个用户提供服务的目标最长时间是< N秒,唯一可能达到目标的方法是预取数据。也许当您看到第一页请求进入用户(例如主页)时,您可以开始将该用户所需的所有数据加载到缓存中(如果它尚未存在)。
无论您做什么,我建议您将FB / LinkedIn数据访问代码封装在“数据访问层”中。缓存应严格发生在 inside 数据访问层中 - 应用程序代码不需要知道缓存。是否使用批量调用,以及是否并行发出多个调用也是一个实现细节,应严格保留在数据访问层内。