为什么Facebook要我放JS代码而不是脚本标签?

时间:2016-01-09 21:08:03

标签: javascript facebook

如果我想在我的页面中添加Like按钮,我应该在打开的body标签之后将下一个代码插入到我的html代码中。

<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/ru_RU/sdk.js#xfbml=1&version=v2.5&appId=12345";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>

为什么我不能简单地使用脚本标签呢?

<script async src='//connect.facebook.net/ru_RU/sdk.js#xfbml=1&version=v2.5&appId=12345"'>

使用facebook说明有什么好处?

2 个答案:

答案 0 :(得分:4)

可能有以下几个原因:

  • IE 8&amp; IE9不支持http://caniuse.com/#feat=script-async
  • 的script.async属性
  • 如果页面上已有facebook-jssdk元素(可能已被其他代码段加载),则facebook代码段不会加载脚本
  • 您的解决方案未准备<div id="fb-root"></div>

答案 1 :(得分:1)

facebook建议这一点(谷歌与他们的分析,以及许多其他公司一样)的原因是减少页面中http请求的数量(减1)。较少的请求通常意味着更快的网站(与http2有些不同)。这与建议连接脚本和css文件的原因相同。

您可以在线阅读有关http请求here或其他地方的更多信息。

编辑:我想我一定是误读了这个问题。这样做不会产生另一个http请求。另一个答案更准确。