0

在某些文档中,FbAsyncInit 以:

(function() { 
    var e = document.createElement('script'); 
    e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js'; 
    e.async = true; 
    document.getElementById('fb-root').appendChild(e); 
 }()); 

而在其他一些文档中,它的结尾是这样的:

  (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));

其中哪一个是正确使用的?还是它们可以互换?

还,

我注意到有时文档希望您添加 html 标头:

xmlns:fb="http://ogp.me/ns/fb#"

在其他地方,他们将其称为:

xmlns:fb="http://www.facebook.com/2008/fbml"

其中哪一项是正确的?
哪个更快?

似乎文档的不同页面是由不同的团队编写的......

谢谢您的帮助。

4

1 回答 1

0

其中哪一个是正确使用的?还是它们可以互换?

它们是可以互换的;只是做基本相同的事情的两种略有不同的方法。我更喜欢第二个版本——它的主要优点是它在脚本元素上设置了一个 id,因此如果函数碰巧在同一页面中放置两次,则不会加载它两次。

其中哪一项是正确的?

两者都是。HTML 元素上的命名空间是 XFBML 在旧版 IE 中工作所必需的——它实际上“指向”的地方并不重要。

哪个更快?

它们对“速度”没有任何影响,因为给出的 URL 只是命名空间的标识符,它实际上并没有被浏览器获取。如果你喜欢的话,你也可以把 http;//example.com/my-own-fancy-namespace 放在那里……</p>

于 2012-06-08T14:03:01.070 回答