为什么facebook脚本包含过于复杂?

时间:2012-10-24 09:40:32

标签: facebook

Facebook like按钮的文档建议包含以下脚本:

<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_GB/all.js#xfbml=1";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>

在我阅读它时,这只会在页面上的第一个脚本标记之前添加外部all.js文件。

<script id="facebook-jssdk" src="//connect.facebook.net/nl_NL/all.js#xfbml=1"></script>

有没有理由不首先将完成的脚本标记添加到页面源?

2 个答案:

答案 0 :(得分:3)

来自Javascript SDK page;

  

此代码异步加载SDK,因此不会阻止加载页面的其他元素。

换句话说,是的,您很可能立即将其包含在内,但用户会体验到它,就像您的网页加载速度更慢。

答案 1 :(得分:0)

这有什么区别:

<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_GB/all.js#xfbml=1";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>

和此:

<script src="//connect.facebook.net/nl_NL/all.js#xfbml=1" async></script>