在facebook开发者文档中,我看到了:
<html>
<head>
<title>My Great Web page</title>
</head>
<body>
<div id="fb-root"></div>
<script>
// 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#xfbml=1";
ref.parentNode.insertBefore(js, ref);
}(document));
</script>
<div class="fb-like"></div>
</body>
</html>
与谷歌分析一样,在许多其他方面,这会生成一个脚本标记,并将其插入到dom中。
为什么不直接写<script type="text/javascript" src="someUrl.com/etc"></script>
?
我认为它可以防止在页面加载(也称为异步)之后加载/注入阻塞行为。是异步的唯一原因??
答案 0 :(得分:3)
这种加载脚本的形式将其异步添加到页面中。
旧版浏览器不支持属性js.async = true;
,因此即使在较旧的浏览器上也可以使用它。
工作原理:它将脚本添加到头部或已经加载的dom部分,以防止浏览器在继续之前下载此脚本。