0

在我的网站中,我显示了 15 个网址。对于我在喜欢、推文和 +1 按钮下放置的每个地址。这是我为每个人提供的代码:

脸书喜欢

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

鸣叫

<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 函数,但我确信大部分来自这些按钮。我究竟做错了什么?我怎样才能加快速度?谢谢!

4

3 回答 3

1

好!必须回答我自己的问题。我用过社交名媛,效果很好。我进行了设置,以便我的按钮在滚动时加载。所以如果其他人有这个问题,这是一个不错的选择。

于 2012-11-12T18:21:39.650 回答
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>
于 2012-11-10T00:42:58.363 回答
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/

于 2014-06-03T13:30:07.577 回答