我们在我们的网站上使用Zopim。不幸的是,因此我们在PageSpeed Insights受到严重惩罚。
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计算。
我的问题:
是的,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();">
您可以通过在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>