如何最好地推迟从PageSpeed Insights中排除脚本?

问题描述 投票:1回答:1

我们在我们的网站上使用Zopim。不幸的是,因此我们在PageSpeed Insights受到严重惩罚。

  • 没有Zopim:86/100
  • Zopim:66/100

Zopim似乎意识到issue,并承诺进一步优化他们的小部件,但我们还没有看到太多进展。

添加Zopim的代码如下:

<script type="text/javascript">
  window.$zopim||(function(d,s){var z=$zopim=function(c){z._.push(c)},$=z.s=
  d.createElement(s),e=d.getElementsByTagName(s)[0];z.set=function(o){z.set.
  _.push(o)};z._=[];z.set._=[];$.async=!0;$.setAttribute("charset","utf-8");
  $.src="https://v2.zopim.com/?2dAdkKRoqdi9hHHrfr302XabQaK8DN7f";z.t=+new Date;$.
  type="text/javascript";e.parentNode.insertBefore($,e)})(document,"script");
</script>

我一直在玩不同的方法来推迟脚本的执行(延迟和异步),但是在提高我们的PageSpeed Insights分数方面却没有成功(完全没有删除Zopim)。

我来到这个article,但我天真的尝试(用“https://v2.zopim.com/?2dAdkKRoqdi9hHHrfr302XabQaK8DN7f”取代“defer.js”)没有达到预期的效果,Zopim仍然被PageSpeed计算。

我的问题:

  • 推迟非关键脚本以确保PageSpeed Insights不将脚本作为其得分的一部分的最佳方法是什么?
  • 如何将其应用于Zopim脚本?
javascript pagespeed zopim
1个回答
1
投票

是的,zopim不在我的好书中,所以我一直在努力修复他们的代码。这就是我推迟zopim脚本的方式。

<script type="text/javascript">  
  function do_zopim() {
    jQuery(document).on("mousemove.zopim_defer scroll.zopim_defer", function(e) {
      window.$zopim||(function(d,s){var z=$zopim=function(c){z._.push(c)},$=z.s=
      d.createElement(s),e=d.getElementsByTagName(s)[0];z.set=function(o){z.set.
      _.push(o)};z._=[];z.set._=[];$.async=!0;$.setAttribute("charset","utf-8");
      $.src="https://v2.zopim.com/?anonymous";z.t=+new Date;$.
      type="text/javascript";e.parentNode.insertBefore($,e)})(document,"script");
      jQuery(document).off("mousemove.zopim_defer scroll.zopim_defer");
    });
  }
</script>

<body onload="do_zopim();">

1
投票

您可以通过在javascript的第三行末尾添加$.setAttribute("defer",null);来实现,因此它如下所示:

<script type="text/javascript">
  window.$zopim||(function(d,s){var z=$zopim=function(c){z._.push(c)},$=z.s=
  d.createElement(s),e=d.getElementsByTagName(s)[0];z.set=function(o){z.set.
  _.push(o)};z._=[];z.set._=[];$.async=!0;$.setAttribute("charset","utf-8");$.setAttribute("defer",null);
  $.src="https://v2.zopim.com/?2dAdkKRoqdi9hHHrfr302XabQaK8DN7f";z.t=+new Date;$.
  type="text/javascript";e.parentNode.insertBefore($,e)})(document,"script");
</script>
© www.soinside.com 2019 - 2024. All rights reserved.