我们正在开始一个新的Facebook应用程序(偶然在Rails中),并且面临使用FBML或使用IFrame的决定。似乎在过去,人们普遍认为FBML是更好的方式,因为它让Facebook看起来更具天赋,但现在似乎iFrame方面的东西开始有所改善,其中一位主要工程师说我们should use iframes
所以我想知道人们发现什么是最好的。使用iFrame方法或FBML方法可以看到哪些好处和缺点。
或者,人们使用两者兼而有之。我看到有一种方法可以覆盖特定地方的设置。
更新
对于新读者,Facebook有stopped allowing new FBML applications。 所有新应用应使用 IFrame 。
答案 0 :(得分:49)
过去几个月我一直在开发一款脸谱app,最近我们将画布页面从FBML转换为IFrame。这样做的主要原因与这些帖子和功能有关:
Lead Facebook Engineer Recommends Developers Use IFrames for Speed, Convenience
XFBML - Facebook Developer Wiki
基本上,您现在可以使用为支持Facebook Connect而实现的XFBML功能将FBML嵌入到IFrame画布中。 IFrame可能会有性能提升(虽然这些可能会被XFBML要求的客户端请求破坏,但最初设置起来有点繁琐),但对我来说主要的优点是:
1)能够使用jQuery或我想要的任何其他东西。
2)来自adsense的有用且相关的广告,因为我不再需要在其自己的IFrame中嵌入adsense javascript。
一旦我做了这个切换,我意识到我能够通过API获得我需要的所有facebook数据,并利用memcached来提高性能。所以,现在我的画布只是普通的旧HTML,没有任何XFBML。
希望这有帮助。
答案 1 :(得分:10)
如果你想让你的应用看起来像Facebook,而不是在复制他们的造型上,我会发现FBML更容易。
iframe当然会给你更多控制权。
那么您更喜欢哪种方式 - 更快地开发或更精确地控制结果?
答案 2 :(得分:10)
答案肯定是iFrame。截至2010年底,Facebook已逐步停止使用FBML
答案 3 :(得分:6)
说真的,在决定再使用FMBL之前,您需要参考此链接。 Facebook将在2010年底之前停止允许新的FBML应用程序。所有Tabs页面和Canvas应用程序将转换到iFrame应用程序,不再有FMBL,并且说GoodBye到FBML! http://developers.facebook.com/roadmap
答案 4 :(得分:4)
好吧,我将不得不同意我上面的海报,并说FBML可以更轻松地为你的应用程序创建一个facebook-ish样式,而不必扯掉CSS页面;}
使用fb标签也很好,而不是有时创建临时解决方案。
两种方式都很好,但FBML往往有助于Facebook的更有效和高效的开发。 因此,在一般情况下,我可能会继续使用FBML,除非您对IFrame微调有一些特殊需求。
答案 5 :(得分:3)
总结: FBML可以提供更好,更集成的应用程序。 IFrame更易于使用,并为您提供更多的开发自由(如果您的应用程序已经完成,您只想添加“facebook leg” - 它非常容易。
答案 6 :(得分:2)
答案 7 :(得分:2)
在过去的几年里,我开发了大约30个Facebook应用程序,几乎都是基于FBML的。我还做了一些Facebook Connect实现,这正是你使用iframe应用程序所做的。
通过创建基于iframe的应用程序,为主网站实施Facebook Connect并没有太多额外的工作(如果有的话)。您的内容也没有消毒,因此您可以毫无后顾之忧地使用标准的html,css和javascript。
另一方面,您仍然只能将FMBL / FBJS用于任何应用程序的选项卡内容。 FBML应用程序还具有能够在初始页面加载时执行服务器端处理的附加优势。使用iframe,您需要收集信息客户端,然后将其传递给服务器。例如,使用iframe应用程序的Preload FQL比使用FBML应用程序要复杂一些。
答案 8 :(得分:2)
但是,我个人认为iFrames目前比FBML更加笨拙,所以我认为在facbeook停止支持FBML之前还需要一段时间。
理论上,iFrames更好,因为你在技术上不会丢失任何东西。此外,您可以在iFrame中执行更多在FBML中无法执行的操作。但实际上,就像我说的那样,iFrames仍然包含很多错误。
答案 9 :(得分:1)
使用FBML可以让您与Facebook整体更深入地融合。
答案 10 :(得分:1)
妈妈。尽管如此,为什么FBML将在不到两个月的时间内过时,没有人能够解决/做出反应,没有更多的应用程序可以用它构建,这意味着Iframes的所有问题都没有作为连接已经或将要处理FBML。看起来向Iframe移动是唯一合乎逻辑的选择,因为最终将不支持FBML。
答案 11 :(得分:1)
我找到了一个创建iframe应用程序的解决方案,而不是Facebook开发人员。它非常强大: http://www.facebook.com/iframe.apps