最好使用Facebook SDK + html5 vs xfbml

时间:2012-07-20 09:27:23

标签: facebook html5 xfbml

我已经在我的网站上实现了JavaScript SDK,如facebook JavaScript SDK网站上所述。:

<div id="fb-root"></div>
<script>
  window.fbAsyncInit = function() {
    FB.init({
      appId      : 'YOUR_APP_ID', // App ID
      channelUrl : '//WWW.YOUR_DOMAIN.COM/channel.html', // Channel File
      status     : true, // check login status
      cookie     : true, // enable cookies to allow the server to access the session
      xfbml      : true  // parse XFBML
    });

    // Additional initialization code here
  };

  // Load the SDK Asynchronously
  (function(d){
     var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
     if (d.getElementById(id)) {return;}
     js = d.createElement('script'); js.id = id; js.async = true;
     js.src = "//connect.facebook.net/en_US/all.js";
     ref.parentNode.insertBefore(js, ref);
   }(document));
</script>

但是在类似的插件代码部分,它给了我这段代码:

<div id="fb-root"></div>
<script>(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/en_US/all.js#xfbml=1&appId=YOUR_APP_ID";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>

我的第一个问题:什么是更好的代码?他们有什么不同吗?

我的第二个问题是关于按钮或注释框的HTML5或XFBML呈现。我运行一个wordpress博客,那不是html5。

我的第二个问题:使用的最佳代码是什么,HTML5或XFBML?并且比另一个更快,或者比另一个更快支持?

谢谢!

1 个答案:

答案 0 :(得分:5)

第一个解决方案异步加载Facebook JavaScript库,如果排列正确,将为访问者提供更快的页面呈现。将<div id=fb-root">window.fbAsyncInit定义放在<body>标记之后,以便在加载Facebook JavaScript库之前预先定义它们。

相反,function(d)定义应位于页面底部</body>标记之前,从而延迟Facebook库加载,直到所有其他页面元素都加载到上方。这可以确保您自己的显着页面元素首先呈现。

function(d,s,id)代码片段看起来更新(更多参数),但我认为它不像第一个那样异步加载。因此,目前我会使用旧的(第一版)版本,直到Facebook发布较新的function(d,s,id)代码段的异步版本。


关于第二个问题,我会继续使用XFBML代码实现,直到很少有网站访问者使用IE7或IE8。一旦他们转移到IE9 +,我就会切换到HTML5实现,它对搜索引擎,屏幕阅读器和抓取器有很多语义上的优势。