2

私は、ShareThis を使用して、自分のサイトに素敵なソーシャル ネットワークの共有バーを含めています。問題は、読み込みが非常に遅く、ページの読み込みが数秒間停止することです。

以下を HTML ヘッドに含める必要があります。

<script type="text/javascript">var switchTo5x=true;</script>
<script type="text/javascript" src="http://w.sharethis.com/button/buttons.js"></script>
<script type="text/javascript" src="http://s.sharethis.com/loader.js"></script>

次に、本体の下部に次のように表示されます。

<script>
var options={ "publisher": "xxxxxxxxxxxxxxxxxxxx", "position": "left", "ad": { "visible": true, "openDelay": 5, "closeDelay": 0}, "chicklets": { "items": ["facebook", "googleplus", "pinterest", "amazon_wishlist", "email", "sharethis"]}};
var st_hover_widget = new sharethis.widgets.hoverbuttons(options);
</script>

ページの後にこれを強制的にロードできれば、ページの速度が低下しないと考えていました。これを行う簡単な方法はありますか?たとえば、このコードはすべて、ページがロードされた後に JavaScript によって HTML の正しい場所に挿入され、ページがすばやくロードされ、ShareThis バーが残りの後にロードできるようにするために、必要に応じてロードを続行できますか?ページの?

4

5 に答える 5

1
<script id="shareThisScript" type="text/javascript">var switchTo5x=true;</script>

<script type="text/javascript">
    setTimeout(function() {
        var s = document.createElement('script');
        s.type = 'text/javascript';
        s.src = 'http://w.sharethis.com/button/buttons.js';
        var c = document.getElementById('shareThisScript');
        c.parentNode.appendChild(s, c);

        s = document.createElement('script');
        s.type = 'text/javascript';
        s.innerHTML = 'var options={ "publisher": "xxxxxxxxxxxxxxxxxxxx", "position": "left", "ad": { "visible": true, "openDelay": 5, "closeDelay": 0}, "chicklets": { "items": ["facebook", "googleplus", "pinterest", "amazon_wishlist", "email", "sharethis"]}};var st_hover_widget = new sharethis.widgets.hoverbuttons(options);';
        c.parentNode.appendChild(s, c);
    }, 10);
</script>

loader.js を使用する理由がわかりません。それなしで私たちのウェブサイトで動作します。

于 2013-01-17T06:30:45.673 に答える
0

遅延読み込みを行っているようですね!

(function() {
    var s = document.createElement('script');
    s.type = 'text/javascript';
    s.async = true;
    s.src = 'http://w.sharethis.com/button/buttons.js';
    var x = document.getElementsByTagName('script')[0];
    x.parentNode.insertBefore(s, x);
})();
于 2012-05-18T11:18:02.580 に答える
0

ボタンには次のように使用して遅延ロードで動作します(ただし、ボタンバーには使用できません):

 window.onload = function() {       
    LazyLoad.js( ['http://w.sharethis.com/button/buttons.js','http://s.sharethis.com/loader.js'], function () {
      stLight.options(
        { publisher: "xxxxxxxxxxxxxx", doNotHash: true, doNotCopy: true ,hashAddressBar: false}
      );
    }); 
  }

この遅延ロードをチェックしてください

于 2014-09-29T16:28:43.560 に答える
0

スクリプトまたはモジュール ローダーとして require.js を使用できます。

于 2012-05-18T11:17:17.570 に答える
0

sharethis コードを別のフレームに入れてもらえますか? 次に、メイン ページとソーシャル バーが互いに独立して読み込まれます。

于 2012-05-18T20:02:28.203 に答える