Facebook的文档( https://developers.facebook.com/docs/ javascript / quickstart / v2.5 )表示应使用以下代码段将其SDK包含在网页中:


 < script&gt ;
 window.fbAsyncInit = function(){
 FB.init({
 appId:'your-app-id',
 xfbml:true,
 version:'v2.8'
});
 FB.AppEvents.logPageView();
 };

 (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_US/sdk.js";
fjs.parentNode.insertBefore(js ,fjs);
}(文档,'script','facebook-jssdk'));
< / script>


& #xA; 第一个语句只是在 window
对象中设置一个字段。第二个表达式是立即调用的函数表达式,但它只是在第一个< script>
元素之后的文档中创建< script>
元素。文档。
文档说这是“将SDK异步加载到我的页面中”,但是IIFE立即执行,没有任何异步。他们为什么声称这个?


我有什么理由不能将这个元素放在纯HTML中并放在 I 想要它的地方文档(如下所示):


 < script type =“text / javascript”>
 window.fbAsyncInit = function(){& #xA; FB.init({
 appId:'your-app-id',
 xfbml:true,
 version:'v2.8'
});
 FB.AppEvents.logPageView();
};
< / script>
< script id =“facebook-jssdk”src =“// connect.facebook.net/en_US/ sdk.js“>< / script>



 我可以添加 async =”async“
boolean attribute?