最好使用Facebook SDK + html5 vs xfbml

use*_*794 3 html5 facebook 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>
Run Code Online (Sandbox Code Playgroud)

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

<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>
Run Code Online (Sandbox Code Playgroud)

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

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

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

谢谢!

Mar*_*ehl 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实现,它对搜索引擎,屏幕阅读器和抓取器有很多语义上的优势.