我们在网站上使用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计数。
我的问题:
答案 0 :(得分:3)
在这篇文章中写了最好的解决方案:here
“我们更改了加载此脚本背后的逻辑。脚本加载在用户执行第一个操作时开始。作为我们考虑的操作:滚动、鼠标单击、鼠标移动、触摸屏幕或按键。”
工作真好!
<script>
document.addEventListener('scroll', zopimlaunch);
document.addEventListener('mousedown', zopimlaunch);
document.addEventListener('mousemove', zopimlaunch);
document.addEventListener('touchstart', zopimlaunch);
document.addEventListener('scroll', zopimlaunch);
document.addEventListener('keydown', zopimlaunch);
function zopimlaunch () {
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='//v2.zopim.com/?yourid';z.t=+new Date;$.type='text/javascript';e.parentNode.insertBefore($,e)})(document,'script');
document.removeEventListener('scroll', zopimlaunch);
document.removeEventListener('mousedown', zopimlaunch);
document.removeEventListener('mousemove', zopimlaunch);
document.removeEventListener('touchstart', zopimlaunch);
document.removeEventListener('scroll', zopimlaunch);
document.removeEventListener('keydown', zopimlaunch);
}
</script>
答案 1 :(得分:1)
您可以通过在JavaScript第三行的末尾添加loaded_model
来做到这一点,如下所示:
$.setAttribute("defer",null);
答案 2 :(得分:1)
我已经更改了网站,以便Zopim在页面本身加载后加载,而不是在初始页面加载中不可或缺。
将此放置在</body>
之前:
<script>
window.addEventListener("load", function () {
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 = '//v2.zopim.com/?1ubUmoyGvu8nQlye7YBWC3pLL0lgJDUf'; z.t = +new Date; $.
type = 'text/javascript'; e.parentNode.insertBefore($, e);
})(document, 'script');
})
</script>
答案 3 :(得分:0)
是的,zopim不在我的好书中,所以我也一直在设法解决他们的代码。这就是我推迟了zopim脚本的方式。
two_largest = df['P_max'].nlargest(2).to_numpy()
df.loc[df['P_max'] == two_largest[0], 'Peak2'] = df.loc[df['P_max'] == two_largest[1]]['P_max'].to_numpy()[0]
df.loc[df['P_max'] == two_largest[0], 'RSI2'] = df.loc[df['P_max'] == two_largest[1]]['RSI'].to_numpy()[0]
print(df.fillna(0))
Index P_max P_max_ind RSI Peak2 RSI2
0 0 0.0 0 0 0.0 0.0
1 1 0.0 0 0 0.0 0.0
2 2 0.0 0 0 0.0 0.0
3 3 11.8 3 81 0.0 0.0
4 4 0.0 0 0 0.0 0.0
5 5 0.0 0 0 0.0 0.0
6 6 11.5 6 75 0.0 0.0
7 7 0.0 0 0 0.0 0.0
8 8 11.0 8 80 0.0 0.0
9 9 0.0 0 0 0.0 0.0
10 10 12.0 10 80 11.8 81.0