加载第三方JS而不影响PageSpeed

时间:2019-12-05 14:21:37

标签: javascript php html wordpress

由于两个第三方JS根据PageSpeed呈现了阻塞资源,因此我很难获得良好的PageSpeed分数。我使用的两个服务是对讲机和Albacross。

我试图删除它们,以查看它可以做多少改进,当我删除它时,在手机上得分将近30分!

顺便说一下,网站是在Wordpress中构建的。

有人知道如何在不影响PageSpeed的情况下加载这些JS吗?我已经尝试过了,但是它对PageSpeed没什么影响。

我还发现此网站https://peakon.com不会加载对讲机和其他第三方JS,直到之后,您在首次访问其网页时就接受了他们的Cookie政策。觉得很聪明。

有什么想法,他们怎么做或我应该做什么?

谢谢!

1 个答案:

答案 0 :(得分:1)

好吧,如果需要的话,您可以等到页面加载完毕后再加载外部源,如下所示:

document.body.onload = function(){
   firstExternalScript = document.createElement("script");
   firstExternalScript.src = "www.linkToIntercom.com";//that would be your script to Intercom or Albacross
   secondExternalScript = document.createElement("script");
   secondExternalScript.src = "www.linkToAlbacross.com";//that would be your script to Intercom or Albacross
   document.body.appendChild(firstExternalScript);
   document.body.appendChild(secondExternalScript);
}

或者,您可以将其变成一个单独的函数,并在用户接受cookie策略时运行它,如您所提到的示例:

HTML

<button class="cookieAcceptBtn" onclick="acceptCookiePolicy();">Accept</button>

JAVASCRIPT

function acceptCookiePolicy(){
   firstExternalScript = document.createElement("script");
   firstExternalScript.src = "www.linkToIntercom.com";//that would be your script to Intercom or Albacross
   secondExternalScript = document.createElement("script");
   secondExternalScript.src = "www.linkToAlbacross.com";//that would be your script to Intercom or Albacross
   document.body.appendChild(firstExternalScript);
   document.body.appendChild(secondExternalScript);
}

我希望这能回答您的问题。