因此,在我所有的网页上,我都有这段代码,这些代码由Yandex metrika用于分析。根据Google的说法,此脚本正在减慢我的页面的速度,并且需要对其加载方式进行一些更改,以使其不呈现渲染,TTI输入阻止时间,FID第一输入延迟阻止,第一内容阻止。
<script data-cfasync="false" type="text/javascript">
(function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)};
m[i].l=1*new Date();k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)})
(window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym");
ym(XXXXXXXX, "init", {
clickmap:true,
trackLinks:true,
accurateTrackBounce:true,
webvisor:true
});
</script>
Googles页面速度报告以下内容 https://developers.google.com/speed/pagespeed/insights/
为了解决此问题,我可以将Yandex metrika javascript修改为什么?
答案 0 :(得分:1)
恐怕您没有太多选择,因为它是第三方脚本。
改善得分和缩短加载时间的一种方法是将对函数的调用包装在setTimeout
集中足够长的时间,以延迟加载脚本,直到加载基本内容为止。
<script data-cfasync="false" type="text/javascript">
setTimeout(function(){
(function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)};
m[i].l=1*new Date();k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)})
(window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym");
ym(XXXXXXXX, "init", {
clickmap:true,
trackLinks:true,
accurateTrackBounce:true,
webvisor:true
});
}, 5000); //set this as high as you can without ruining your stats.
</script>
这绝对是一种解决方法,如果您可以找到一个库,我建议您改用另一个不那么肿的库。
答案 1 :(得分:0)
<script data-cfasync="false" type="text/javascript">
(function(){
var a = function() {try{return !!window.addEventListener} catch(e) {return !1} },
b = function(b, c) {a() ? document.addEventListener("load", b, c) : document.attachEvent("onreadystatechange", b)};
b(function(){
(function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)};
m[i].l=1*new Date();k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)})
(window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym");
ym(XXXXXXXX, "init", {
clickmap:true,
trackLinks:true,
accurateTrackBounce:true,
webvisor:true
});
}, false);
})();
</script>
答案 2 :(得分:0)
一种选择是使用旧的Yandex Metrika代码(new Ya.Metrika...
)。
如果您在Metrika的高级设置中设置了复选框,则可以查看旧代码。旧代码有一定的局限性,但更小,速度要快几倍。
答案 3 :(得分:0)
禁用点击地图和webvisor可能会有所帮助。