新的Facebook应用程序 – FBML或iFrame?

我们正在开发一个新的Facebook应用程序(顺便说一句,在Rails中),并面临使用FBML或使用IFrames的决定。 看起来过去一般认为FBML是更好的select,因为它让Facebook看起来更加内在,不过现在好像iFrame上的东西似乎已经开始改善了,他们的主要工程师之一我们应该使用iframe

所以我想知道有什么人发现最好的工作。 使用iFrame方法或FBML方法有什么好处和缺点?

或者,人们使用两者的组合。 我发现有一种方法可以覆盖特定位置的设置。


更新:
对于新的读者,Facebook已经停止允许新的FBML应用程序 。 所有新的应用程序应使用IFrames

过去几个月来我一直在开发一个Facebook应用程序,最近我们把我们的canvas页面从FBML转换到IFrame。 这样做的主要原因是与这些post和function有关:

领先的Facebook工程师build议开发人员使用IFrames来提高速度和便利性

XFBML – Facebook开发人员维基

基本上,您现在可以使用为支持Facebook Connect而实现的XFBMLfunction将FBMLembedded到IFramecanvas中。 IFrame可能会有性能改进(尽pipe这些可能会被XFBML所要求的客户端请求所破坏,而这些请求起初有点繁琐),但是我的主要优点是:

1)使用jQuery或任何其他我想要的东西的能力。

2)从AdSense的有用的,相关的广告,因为我不再需要在其自己的IFrameembedded的AdSense的JavaScript。

一旦我做了这个开关,我意识到我能够通过API获取所需的所有facebook数据,并利用memcached来提高性能。 所以,现在我的canvas只是普通的旧HTML,没有任何XFBML。

希望这可以帮助。

如果你想让你的应用看起来就像Facebook一样,那么我发现FBML更容易,而且复制它们的样式更省力。

iframe当然会给你更多的控制。

那么你更喜欢哪一种 – 更快的开发或者更精确地控制结果?

答案肯定是iFrame。 Facebook在今年年底之前已经逐步淘汰了FBML的使用

说真的,你需要参考这个链接,然后再决定和FMBL一起去。 Facebook将停止允许新的FBML应用程序在2010年底。所有的标签页和canvas应用程序将过渡到iFrame应用程序,没有更多的FMBL,并说GoodBye FBML! http://developers.facebook.com/roadmap

那么,我将不得不同意上面的海报,并说FBML使你的应用程序创build一个facebook-ish风格更容易,而不必撕掉CSS页面;}

它与fb标签的工作也非常好,而不是有时候创build临时解决scheme。

这两种方式都很好,但FBML往往有助于Facebook更有效和高效的开发。 因此,在一般情况下,我可能会继续使用FBML,除非您有一些特定的IFrame微调需求。

总结:FBML使得应用程序更好,更集成。 IFrame更容易使用,给你更多的开发自由(如果你的应用程序已经完成了,你只是想添加一个“Facebook的腿”),这是非常容易的。

如果客户端使用Flash或Silverlight,IFrame似乎更好。 我不能让FBML与Silverlight客户端一起工作,但是当我切换到IFrame时,它工作正常。

在过去几年里,我开发了大约30个Facebook应用程序,几乎都是基于FBML的。 我也做了一些Facebook连接的实现,这实际上是你在做一个iframe的应用程序。

通过创build一个基于iframe的应用程序,为主网站实施Facebook Connect并不需要额外的工作,如果有的话。 你的内容也没有消毒,所以你可以使用标准的HTML,CSS和JavaScript无后顾之忧。

另一方面,对于任何应用程序的标签内容,您仍然只能使用FMBL / FBJS。 FBML应用程序还具有能够在初始页面加载时执行服务器端处理的附加优点。 使用iframe,您需要收集信息客户端,然后将其传递到服务器。 例如,与FBML应用程序相比,预加载FQL与iframe应用程序相比更加复杂。

Facebook已经宣布他们将很快停止对FBML的支持。 所以,如果你想开发一个长期项目,我肯定会从iFrame开始。 以后你不想经历从FBML到iFrame的变化,这只是一个痛苦。

不过,我个人认为iFrames比FBML要笨多了,所以我认为在FBB支持FBML之前会花费一段时间。

从理论上讲,iFrames更好,因为你在技术上不会丢失任何东西。 另外,在FBML中,您可以在FBF中做更多的事情。 但在实践中,就像我所说的,iFrames仍然包含很多的错误。

使用FBML可以使您与Facebook整体更加深入地融合。

妈妈。 尽pipe如此,为什么没有人对FBML将在不到两个月的时间内过时这一事实做出反应/反应,这样就不会再有任何应用可以build立起来了,这就意味着Iframe的所有问题都不是连接性的因为FBML已经或将要处理。 这似乎是转向iframe是唯一合乎逻辑的select,因为最终FBML将不被支持。

我find了一个解决scheme来创build一个iframe应用程序,而不是一个Facebook开发者。 这是非常强大的: http : //www.facebook.com/iframe.apps