0

我有一个使用谷歌地图和我自己的 javascript 的网站。我正在将 addThis javascript 用于社交按钮。在我的 javascript 和 google javascript 加载并运行(on)之前,该站点才真正可用,$(document).ready...所以我想尽量减少延迟。因此,我正在考虑推迟 AddThis 模块,直到其他所有内容都完成为止,因为它并不那么重要。

关于 stackoverflow 的其他问题建议将我想要延迟的 javascript 的链接放在页面底部。但是我是否认为这与我无关,因为$(document).ready...无论其放置在何处,所有链接的 javascript 都已加载之前不会触发?

如果是这样,我应该在 on 之后以某种方式加载 addThis javascript$(document).ready...吗?

虽然我真的不想运行 addThis 直到所有谷歌地图图像等都被加载(我相信 .ready() 不会等待这个)。有没有推荐的方法来处理这种事情?

作为参考,典型的 addThis 用法...

<script type="text/javascript">
    var addthis_config = {
        "data_track_addressbar":false,
        "ui_click":true,
        "data_use_cookies": false
    };
</script>
<script type="text/javascript" src="http://s7.addthis.com/js/250/addthis_widget.js#"></script>

<div class="addthis_toolbox addthis_default_style addthis_32x32_style">
<a class="addthis_button_facebook"></a>
<a class="addthis_button_twitter"></a>
<a class="addthis_button_preferred_1"></a>
<a class="addthis_button_preferred_2"></a>
<a class="addthis_button_compact" title="Share"></a>
</div>
4

3 回答 3

0

以防万一有人仍在寻找解决方案。AddThis 已经发布了许多人对页面延迟感到恼火,他们现在提供了几个选项,您可以在脚本中控制在您 (dom) 准备好时加载:虽然您也可以使用动态加载或附加 #async=1 来加载异步地,我认为另一个不错的选择就是以这种方式放置 - 在 dom 准备好之前不会运行:

<script type="text/javascript">


 /*
    //if you have a pub_id, add it here and uncomment these two lines
    var addthis_config = addthis_config||{};
    addthis_config.pubid = 'YOUR PUBID';
    */
    var addthisScript = document.createElement('script');
    addthisScript.setAttribute('src', 'http://s7.addthis.com/js/300/addthis_widget.js#domready=1')
    document.body.appendChild(addthisScript)
</script>

你可以在这里阅读更多

于 2015-01-14T00:08:35.027 回答
0

看看异步加载 AddThis :

http://support.addthis.com/customer/portal/articles/381221-optimizing-addthis-performance#.UZFNACtAR7Q

至少,这将最大限度地减少加载时间(但幸运的是 AddThis 已经缓存在大多数计算机上,因此加载时间真的很少)。

于 2013-05-13T20:31:12.610 回答
0

我想出了这个(如果有更好的方法,请告诉我)。

<script type="text/javascript">
    var addthis_config = {
        "data_track_addressbar":false,
        "ui_click":true,
        "data_use_cookies": false
    };

    $(window).on("load", function(){
        $('head')
            .append($('<script>')
            .attr('type', 'text/javascript')
            .attr('src', "http://s7.addthis.com/js/250/addthis_widget.js#"));        
    });
</script>

<div class="addthis_toolbox addthis_default_style addthis_32x32_style">
<a class="addthis_button_facebook"></a>
<a class="addthis_button_twitter"></a>
<a class="addthis_button_preferred_1"></a>
<a class="addthis_button_preferred_2"></a>
<a class="addthis_button_compact" title="Share"></a>
</div>
于 2013-05-11T16:28:18.423 回答