0

私のWebサイトには、15のWebアドレスが表示されています。いいね、ツイート、+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>

つぶやき

<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回繰り返します。すべてのWebサイトに1つずつあり、ページの下部にこれらのコードがありますが、これらのコードは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

良い!私自身の質問に答えなければなりません。私はSocialiteを使用しましたが、かなりうまく機能します。ボタンがスクロール時に読み込まれるように設定しました。したがって、他の誰かがこの問題を抱えている場合、これは良い選択肢です。

于 2012-11-12T18:21:39.650 に答える
0

データベースから Web サイトのリストを取得し、オンザフライですべての要素を生成します。

PHP と Javascript をマージして、JavaScript 内に Web サイトを挿入できます。

<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>

ボタン自体にはまだ 1 分ほどかかりますが、このようにして、ページ上の他のものを妨げたり、読み込み中に動作が遅くなったりすることはありません。

クレジットはhttp://www.ockwebs.com/2012/04/load-facebook-like-asynchronously/に送られます

于 2014-06-03T13:30:07.577 に答える