javascript-使用Google的Platform.js插件
作者:互联网
我的网站似乎很慢.因此,我决定深入探讨如何提高性能.在服务器端,一切看起来都不错.但是在客户端,有很多JavaScript会减慢速度.当我看着货堆时,我注意到了两个罪魁祸首.
最严重的两个违规者是https://apis.google.com/js/platform.js和https://www.google-analytics.com/analytics.js.我将前者用于1个按钮,将后者用于分析目的.截至目前,我正在像这样加载它们:
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', '[MyId]', 'auto');
ga('send', 'pageview');
</script>
<script src="https://apis.google.com/js/platform.js" async defer></script>
我的印象是platform.js包含Google Plus和Google Analytics(分析).因此,我认为我可以使用以下方法将其压缩为一个外部JS库:
(function(w,d,s,g,js,fs){
g=w.gapi||(w.gapi={});g.analytics={q:[],ready:function(f){this.q.push(f);}};
js=d.createElement(s);fs=d.getElementsByTagName(s)[0];
js.src='https://apis.google.com/js/platform.js';
fs.parentNode.insertBefore(js,fs);
js.onload=function(){
g.load('analytics');
};
}(window,document,'script'));
这至少会加载Google Plus插件.但是,它实际上不再记录访问次数.看起来g.load引入了Google Analytics(分析).但是,我的ID没有分配到任何地方.同时,在platform.js版本中看不到将其分配到何处.
谁能提供任何见解?如果可能的话,我希望能够少加载一个外部资源.
谢谢.
解决方法:
很难理解为什么这两个库会使页面变慢,它们通常与异步技术配合使用(以及
该平台的重量不到20 Kbs,通常该库托管在CDN中,因此也许您托管的库并不比欧洲库(经测试的库)要胖,但是我可以放弃此选项,因为American和Latam Server也非常好.
我已经阅读了platform.js,但与analytics.js没有共同点,为什么您认为它包含其中? Iframe或其他资源上可能包含Google Analytics(分析),这使您感到困惑,但是如果您未正确使用ga(‘create’)命令,则不会将任何信息发送到您的帐户.也许您仍然拥有该库,但是信息正在发送到另一个帐户(当嵌入一些iframe,它们包括Google Analytics(分析)但在不同的域中并且数据发送到2个不同的帐户时,这种情况经常发生,这可能很困难一开始就了解).
但是,如果我理解的话,仍然是您的主要疑问.
您想为两者都保留一个库,我认为这是不可能的.我检查了platform.js,没有引用Ga对象(在Google Analytics(分析)上使用的那个对象),甚至也没有引用收集URL(您将信息发送到Google Analytics(分析)). GA主代码段还做一些额外的事情,例如保留执行日期以供以后使用.
我能推荐你什么?
1.-通过网络控制台查看命中次数,如果您未使用SSL,则Google通过HTTP强制HTTPS调用将Google Analytics(分析)命中发送到http://www.google-analytics.com(您拥有全部命中的两倍,但分析将仅使用安全的一).或使用“标签助理”来查看此内容.
https://chrome.google.com/webstore/detail/tag-assistant-by-google/kejbdjndbnbjgmefkgdddjlbokphdefk.检查您的实现是否仍然有效.
2.-也许您可以检查Google跟踪代码管理器,可以将该工具配置为在PageView(HTML.load)中的DOM上加载库,我不建议您这样做,这样可以减少点击次数发送到工具(并获得更少的会话).
3.-将代码移到页面底部:由于之前相同的原因,这不是一个好主意.
4.-这样,但是这样做仍然不正确,您只延迟了库的加载
$( document ).ready(function() {
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', '[MyId]', 'auto');
ga('send', 'pageview');
});
所有这些都将两个代码分开保存
我强烈建议您检查这两个库是否是真正的原因.
标签:google-analytics,javascript 来源: https://codeday.me/bug/20191112/2024059.html