3

如 facebook JavaScript SDK 网站所述,我已经在我的网站中实现了 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 最好使用什么代码?一个比另一个快,还是一个比另一个受支持少?

谢谢!

4

1 回答 1

5

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

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

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


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

于 2012-07-29T17:29:49.743 回答