加速Like / Tweet和+1按钮

时间:2012-11-09 23:29:05

标签: javascript twitter facebook-like google-plus google-plus-one

在我的网站中,我显示了15个网址。对于每个地址,我放在一个类似,推文和+1按钮。以下是我为每个人提供的代码:

Facebook赞

 <div class="fb-like" data-href="http://website.com" data-send="false" data-layout="button_count" data-width="200" data-show-faces="false"></div>

资料Tweet

<a href="https://twitter.com/share" class="twitter-share-button" data-text="Check Out http://website.com" data-via="MySite" data-lang="es">Tweet</a>

1

<div class="g-plusone" data-size="medium" data-href="http://website.com"></div> 

我重复该代码15次,每个网站1次,在我的页面底部我有这些代码,我只放了一次

<!-- Twitter -->
    <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>



<!-- +1 -->
<script type="text/javascript">
  window.___gcfg = {lang: 'es-419'};

  (function() {
        var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
        po.src = 'https://apis.google.com/js/plusone.js';
        var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
      })();
</script> 

<!-- Facebook -->
<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/en_US/all.js#xfbml=1";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>

我要说的是,用按钮加载所有内容大约需要15秒,我确定1或2是来自php函数,但我确信大部分来自这些按钮。我究竟做错了什么?我怎样才能加快速度?谢谢!

3 个答案:

答案 0 :(得分:1)

嘛!必须回答我自己的问题。我使用了Socialite,效果非常好。我进行了设置,以便我的按钮加载滚动。所以,如果其他人有这个问题,这是一个不错的选择。

答案 1 :(得分:0)

从数据库中获取网站列表,并即时生成所有元素。

您可以合并PHP和Javascript以允许在javascript中插入网站:

<script>
    var foo = "<?php PHP CODE HERE ?>"
</script>

伪码样本:

<script>
    var websites = json of websites

    Loop "websites" object here
        Generate each element for this website
    endloop
</script>

答案 2 :(得分:0)

根据我的经验,facebook按钮往往是最糟糕的罪魁祸首,我找到了一个设置,通过异步加载它们来加速它们。在您的FB脚本中插入以下内容:

js.async=true;

因此,对于您的示例,它将是:

<!-- Facebook -->
<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.async=true;
  js.src = "//connect.facebook.net/en_US/all.js#xfbml=1";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>

按钮本身仍然需要一分钟,但这样他们就不会在页面上占据任何其他内容,或者在加载时使其表现缓慢。

信用证转到:http://www.ockwebs.com/2012/04/load-facebook-like-asynchronously/