Как лучше всего отложить скрипты, которые будут исключены из PageSpeed ​​Insights? - PullRequest
0 голосов
/ 13 января 2019

Мы используем Zopim на нашем сайте. К сожалению, из-за этого мы значительно наказаны за PageSpeed ​​Insights .

  • без Zopim: 86/100
  • С Zopim: 66/100

Zopim, похоже, знает о проблеме и обещает дальнейшую оптимизацию своего виджета, но мы пока не достигли большого прогресса.

Код для добавления 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).

Я пришел к этой статье , но моя наивная попытка (заменить "defer.js" на "https://v2.zopim.com/?2dAdkKRoqdi9hHHrfr302XabQaK8DN7f") не принесла желаемого эффекта, а Zopim все еще считается PageSpeed.

Мой вопрос:

  • Каков наилучший способ отложить некритические сценарии, чтобы PageSpeed ​​Insights не считал сценарий как часть его оценки?
  • как применить это к сценарию Zopim?

Ответы [ 2 ]

0 голосов
/ 04 июля 2019

Вы можете сделать это, добавив $.setAttribute("defer",null); в конце третьей строки javascript, чтобы оно выглядело следующим образом:

<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>
0 голосов
/ 09 апреля 2019

Да, 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();">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...