Facebook FBML模式下优化研究

来源:互联网 发布:不喜欢穿内裤体验知乎 编辑:程序博客网 时间:2024/04/30 09:56

       Facebook的F8平台允许两种开发模式:FBML和IFrame。在FBML下,facebook提供了强大的fbml标签,为开发人员省去了很多开发细节,对于提高开发效率很有帮助。
      但是,FBML模式下也有其不太好的地方,就是限制太多,比如对JavaS

cript的限制,只允许使用FBJS,还有就是对API调用的依赖过重,导致服务器的负担太重。
      举个例子。比如社会化网络中最重要的好友关系的取得。虽然F8平台提供了相当完善和全面的API可供调用,但是对于一个用户量庞大的应用来说,单API调用给服务器带来的负担就相当的严重了。获得好友列表的API是friends.get,当然还有其他一些,通过服务器来调取API可以返回XML或者Json格式的结果。如此设想一下,一个日活跃在百万以上的应用,如此多的用户都依靠服务器来与facebook平台通讯,调用facebook的API来取得数据的话,对于服务器的效率和负担就可想而知了。
      综上所述,在FBML模式下,如何将客户端(用户端)的计算机充分利用,来减轻应用服务器的负担,是优化研究的方向之一。
      对于一般的FBML应用,客户端存在的可用资源基本上有两种Flash和JavaScript。facebook有第三方的FlashAPI库,将大量调用facebook平台数据的工作交给flash来做不失为一个好的优化方法。但是,flash也有其一定的局限。毕竟是客户端,像应用的加密KEY等敏感信息交由前端来处理是有一定的风险的。但是,很多的基于平台的通讯如果没有这种应用信息,又无法调用,所以很不方便。所以剩下的就只有JavaScript。
      说道JavaScript又不能不提IFrame,在IFrame模式下,facebook提供了一套强大的 JavaScript Client Library其所能提供的功能和API完全相同,而且JavaScript Client Library是facebook平台提供的工具,其安全性当然没有担心的必要。这样从JavaScript Client Library下手,将逻辑放到客户端,减少知道最后杜绝应用服务器和平台的通讯,以达到减轻应用服务器压力的目的。
      IFrame模式下的
JavaScript Client Library在FBML模式下是无法应用的。所以需要一个比较巧妙的方法来做个变通。这里用到的工具是<fb:iframe/>标签,将像flash这样的客户端程序文件内嵌进<fb:iframe>所引用的页面中,就可以方便的将JavaScript Client Library提供的功能在FBML中使用了。
      这一篇主要从方向上来研究优化的方案。优化的原理就是将应用服务器、客户端、平台的环形关系改为应用服务器与平台在两端,客户端在中间的线性关系,尽量减少应用服务器甚至是杜绝应用服务器频繁对平台进行请求。
      下一篇将就IFrame下的
JavaScript Client Library一些使用的功能实现做进一步的讲解。
原创粉丝点击