Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/463.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么Facebook要我用JS代码而不是脚本标签?_Javascript_Facebook - Fatal编程技术网

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

Javascript 为什么Facebook要我用JS代码而不是脚本标签?,javascript,facebook,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;

如果我想将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>

(功能(d、s、id){
var js,fjs=d.getElementsByTagName[0];
if(d.getElementById(id))返回;
js=d.createElement;js.id=id;
js.src=“//connect.facebook.net/ru#ru/sdk.js#xfbml=1&version=v2.5&appId=12345”;
fjs.parentNode.insertBefore(js,fjs);
}(文档“脚本”、“facebook jssdk”);
为什么我不能简单地使用script标签呢

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


使用facebook的说明有什么好处?

facebook建议这样做的原因(就像谷歌和其他许多公司一样)是为了减少页面中http请求的数量(减少1)。更少的请求通常意味着更快的网站(http2的情况略有不同)。这也是为什么建议将脚本和css文件连接在一起的原因

您可以在线阅读有关http请求或其他位置的更多信息


编辑:我想我一定是看错了这个问题。这样做不会引发另一个http请求。另一个答案更准确。

可能有几个原因:

  • 根据,IE 8和IE9不支持script.async属性
  • 如果页面上已有facebook jssdk元素(可能已由其他代码段加载),则facebook代码段不会加载脚本
  • 您的解决方案没有准备

我不知道Javascript如何注入div标记: