3

Facebook JavaScript SDK サイトに記載されているように、Web サイトに 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>

私の最初の質問: より良いコードは何ですか? 違いはありますか?

2 番目の質問は、ボタンまたはコメント ボックスの HTML5 または XFBML レンダリングに関するものです。私はワードプレスのブログを運営していますが、これは html5 ではありません。

2 番目の質問: 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)パラメーターが増えています)、最初のように非同期に読み込まれるとは思いません。したがって、当面は、Facebook が新しいfunction(d,s,id)コード スニペットの非同期バージョンを投稿するまで、古い (最初の) バージョンを使用します。


2 番目の質問については、IE7 または IE8 を使用する Web サイト訪問者がほとんどなくなるまで、XFBML コード実装を使用し続けます。彼らが IE9+ に移行したら、検索エンジン、スクリーン リーダー、スクレイパーにとって多くのセマンティクス上の利点がある HTML5 実装に切り替えます。

于 2012-07-29T17:29:49.743 に答える