Javascript 动态社交媒体按钮-减少http请求和验证错误

Javascript 动态社交媒体按钮-减少http请求和验证错误,javascript,facebook,validation,twitter,social-networking,Javascript,Facebook,Validation,Twitter,Social Networking,我在几个网站上使用下面的代码来添加动态社交媒体按钮 在它们之间,它们向每个页面添加三个javascript http请求和无效代码。虽然我很感激这些都是从CDN加载的,但它们增加了其中一个站点页面上已经很重的负载,而无效性让我感到恼火 是否有任何方法可以减少请求的数量,或强制最后加载该代码段和/或在不破坏脚本的情况下清除有效性问题 <div id="fb-root"></div> <script type="text/javascript">(function

我在几个网站上使用下面的代码来添加动态社交媒体按钮

在它们之间,它们向每个页面添加三个javascript http请求和无效代码。虽然我很感激这些都是从CDN加载的,但它们增加了其中一个站点页面上已经很重的负载,而无效性让我感到恼火

是否有任何方法可以减少请求的数量,或强制最后加载该代码段和/或在不破坏脚本的情况下清除有效性问题

<div id="fb-root"></div>
<script type="text/javascript">(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_GB/all.js#xfbml=1";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>
<div>
<ul> 
    <li> 
        <div class="fb-like" data-href="http://www.facebook.com/username" data-send="true" data-layout="button_count" data-width="100" data-show-faces="false"></div>
    </li>
    <li>
        <a style="color: #777;" href="http://twitter.com/share" class="twitter-share-button" data-count="horizontal" data-via="twittername">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script>
    </li>
    <li>
        <a href="https://twitter.com/justicecampaign" class="twitter-follow-button" data-show-count="true">Follow @twittername</a>
    </li>
    <li>
        <script type="text/javascript" src="https://apis.google.com/js/plusone.js"></script>
        <g:plusone size="medium"></g:plusone>
    </li>
</ul>   
</div>

(功能(d、s、id){
var js,fjs=d.getElementsByTagName[0];
if(d.getElementById(id))返回;
js=d.createElement;js.id=id;
js.src=“//connect.facebook.net/en_GB/all.js#xfbml=1”;
fjs.parentNode.insertBefore(js,fjs);
}(文档“脚本”、“facebook jssdk”);

您可以做的最好的事情是将这些脚本移动到
的末尾,或者为Twitter和Google+的
脚本
标记添加
延迟
属性。浏览器在下载并执行JavaScript时停止对页面的解析和渲染,因此不建议在HTML中间有第三方脚本,因为您的页面将被那些第三方网络所支配。如果其中任何一个出现延迟,您的页面都会感觉到。将这些脚本移到底部可以确保首先解析和呈现最重要的内容

至于减少请求,您可以尝试下载这些第三方脚本并将其组合成一个脚本,从而消除两个请求。缺点是,除非您主动监视并重新组合脚本,否则在脚本更新时您将无法获得最新版本的脚本


我真的不能谈论无效性,因为我没有对这些特定脚本做过太多的研究。

有没有办法强制在页面剩余部分之后加载该部分代码?