AddThis 和 Google Page Speed

Posted

技术标签:

【中文标题】AddThis 和 Google Page Speed【英文标题】:AddThis and Google Page Speed 【发布时间】:2012-04-02 02:24:26 【问题描述】:

无论我如何尝试加载 AddThis(默认使用 Google +1、Facebook Send 和 Like 以及 Twitter 按钮),Google Page Speed 仍然会发出警告:

利用浏览器缓存 延迟解析 javascript

在每一项中,都引用了对 AddThis、Facebook、Google +1、Twitter 和 static.ak.fbcdn.net 的 .html 和 .js 引用。事实上,如果你在这个页面上运行 Google Page Speed:http://support.addthis.com/customer/portal/articles/381263-addthis-client-api-#rendering-js,你就会明白我在说什么。前两项都带有橙色严重性图标(至少对我而言),正是我上面提到的。

我尝试使用 defer(对于 IE)和 async(对于 FF 和 Chrome)将脚本标签添加到我的页面头部,但没有成功:

<script type="text/javascript" src="http://s7.addthis.com/js/250/addthis_widget.js#pubid=myUserId" defer="defer" async="async"></script>

我尝试过使用 $.getScript():

$(document).ready(function () 
    $.getScript('http://s7.addthis.com/js/250/addthis_widget.js#async=1#username=myUserId', function(data, textStatus) 
        addthis.init();
    );
);

我还尝试打开 ajax 缓存:

$(document).ready(function () 
    $.ajaxSetup( cache: true );
    $.getScript('http://s7.addthis.com/js/250/addthis_widget.js#async=1#username=myUserId', function(data, textStatus) 
        addthis.init();
        $.ajaxSetup( cache: false );
    );
);

有什么办法可以缓存,也可以延迟加载 AddThis 及其外部引用?

【问题讨论】:

您在低优先级上收到此警告 - 正确吗? 我重新运行它并获得了用于延迟解析 JavaScript 的 Medium,Leverage 浏览器缓存。在我的网站上,情况正好相反。无论如何,我知道这并没有真正影响性能,但如果可以的话,我仍然想修复它。我对这些东西非常有强迫症。 您实际上不必修复某些问题,这就是我所说的。您可以制作一个技巧,您可以仅在需要时加载 addthis,但这并不容易。您可以制作一个看起来像 addthis 已加载的按钮,但您只能在用户移动它时加载它......并不是那么简单。 (不要在准备好的时候加载它 - 但只有在用户需要它时才加载它,点击它等) 【参考方案1】:

利用浏览器缓存

好吧,这只是为某些页面设置更多时间缓存的建议。在我的页面上,我收到这两个警告 - 都来自谷歌脚本:)。不是那么重要,因为这个 javascript 都准备好了,有一个很好的时间缓存 javascript。

http://pagead2.googlesyndication.com/pagead/show_ads.js (60 minutes)
http://www.google-analytics.com/ga.js (2 hours)

延迟解析 Javascript

嗯,这是一个自动程序,它会尝试了解页面是否缓慢并建议一些改进它的想法。在这一点上是不准确的。

我只是在已知页面上运行它,该页面可以找到并充满缓存和其他技巧,并获得相同的消息。

就像一个建议,实际上并不能知道这个 javascript 是否真的做好了他所说的一切——至少目前是这样。例如,在我的测试页面中,我在页面末尾加载了一个 javascript,然后再次收到此消息。如果您知道您在正确的时间使用正确的标志加载了 javascript,请不要担心此消息。

查看此页面的报告:

https://developers.google.com/pagespeed/#url=http_3A_2F_2F***.com_2Fquestions_2F9739031_2Faddthis-and-google-page-speed&mobile=false&rule=LeverageBrowserCaching

【讨论】:

【参考方案2】:
<script type="text/javascript"charset="utf-8" src="/js/addthis.js#async=1"</script>

我们的网站已解决此问题。 http://www.nbhuntop.com 您可以先尝试复制 addthis 代码。并引用为src="/js/addthis.js#async=1"

【讨论】:

以上是关于AddThis 和 Google Page Speed的主要内容,如果未能解决你的问题,请参考以下文章

AddThis按钮CSS问题

html addthis分享片段和prelim样式

AddThis 拉错段落

使用适用于 iOS 的 AddThis SDK,需要更改默认 Twitter 文本的“通过 @AddThis”

如何将“addThis”社交集成添加到灯箱(jquery prettyphoto 或 jquery fancybox)中?

php 使用AddThis共享按钮