ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

javascript-使用Google的Platform.js插件

2019-11-12 02:38:02  阅读:194  来源: 互联网

标签:google-analytics javascript


我的网站似乎很慢.因此,我决定深入探讨如何提高性能.在服务器端,一切看起来都不错.但是在客户端,有很多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版本中看不到将其分配到何处.

谁能提供任何见解?如果可能的话,我希望能够少加载一个外部资源.

谢谢.

解决方法:

很难理解为什么这两个库会使页面变慢,它们通常与异步技术配合使用(以及

enter image description here
enter image description here

该平台的重量不到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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有