推迟加载Facebook Like Button Script

Reg*_*dit 6 jquery facebook deferred-loading

Google pagespeed正在抱怨我的facebook就像按钮脚本一样.我怎样才能推迟脚本?

在初始页面加载期间解析45KiB的JavaScript.推迟解析JavaScript以减少页面呈现的阻塞. http ://static.ak.facebook.com/.../xd_arbiter.php?...(内联JavaScript的21KiB)https://s-static.ak.facebook.com/.../xd_arbiter.php?...(内联JavaScript的21KiB)http://www.facebook.com/.../like.php?...(内联JavaScript的3KiB)

这是我正在使用的代码,我将它加载到页面页脚的.js文件中.

(function(d,s,id){
        var js,fjs = d.getElementsByTagName(s)[0];
        if(d.getElementById(id)){return;}
        js=d.createElement(s);
        js.id=id;
        js.async=true;
        js.defer=true;//THIS DOES NOT APPEAR TO SATISFY PAGESPEED
        js.src="//connect.facebook.net/en_US/all.js#xfbml=1";
        fjs.parentNode.insertBefore(js,fjs);
    }
    (document, "script", "facebook-jssdk")
);
Run Code Online (Sandbox Code Playgroud)

结果在以下脚本标记中(通过Chrome的检查器):

    <script 
    id="facebook-jssdk" 
    async="" 
    defer="" 
    src="//connect.facebook.net/en_US/all.js#xfbml=1"></script>
Run Code Online (Sandbox Code Playgroud)

gho*_*ost 8

使用setTimeout luke!

setTimeout( function () {
   (function(d,s,id){
         // load js
         ...
      }
      (document, "script", "facebook-jssdk")
   );
}, 3000);
Run Code Online (Sandbox Code Playgroud)

您可以将负载放在另一个"线程"中以异步或延迟它