谷歌分析(Google Analytics) 加速实现秒加载页面

十二月 15, 2016
turned_in 软件

之前一直在使用 Google Analytics ,后来因为每次都因为analytics.js处于半墙状态而一直转圈,后来换到了growing.io,发现这玩意虽然是国内网站,但是速度也没比谷歌分析好到哪里去,最后甚至连cnzz都去尝试了,但发现速度还是不行。而百度统计虽然很早之前也用过,但是禀承着打死不用百度的誓言,我考虑都没去考虑。之后又搞了一个leancloud的统计分析,在站点下还能实时显示每个页面的访问人数,但是这家伙依旧死在了CDN上,把一秒的加载拖到了四秒。

最后实在没办法,想干脆自己干了,于是找了几个开源的统计系统,但是发现都不满意,而且,自己做CDN未必会比cnzz这样的好到哪里去,甚至更坏。

最后的最后,又回到了最初的起点。心想,就不信不能把Google Analytics给弄服帖了。不就是加载个js吗? 于是开始了Hack Analytics之路。

根据官方文档,事实上谷歌是允许用户自己下载了analytics.js,然后根据业务需求进行魔改的。但是,谷歌也不鼓励这种行为,因为它的analytics.js也是在不停变化的。所以如果要自己托管analytics.js,就得有个定时任务去不断更新它的代码。

明白了这点后,基本上就可以完虐analytics.js。

方法有以下几种:

  1. 首先可以在服务端搞一个脚本,定时下载更新analytics.js 。
  2. 也可以用gulp写个脚本任务,每次构建的时候就去更新analytics.js文件至目录,这样免去了在服务端搞一个定时脚本的麻烦。适合把博客放在github上的人群。
  3. 但凡遇到问题,最快最好的解决方案是参照国内大公司(逃)。目前国内许多公司都是用了Google Analytics,虽然这里面大部分公司也只是仅仅复制粘帖了下模板代码就完事了,但还是有少部分对访问速度有严格要求的公司对 Analytics 进行了Hack . 比如七牛 。

七牛页面源码:

注意这里有一个 http://o4jiepyc4.qnssl.com/analytics.js 的链接

既然七牛已经做好了,并且七牛自身就有强大的CDN,所以我就直接拿七牛的来用了。当然,这里有个问题是,七牛的静态资源url会不会变化,由于我这个并不是非常重要,所以我觉得即便七牛有一天把这个url变化了,我无非就丢失几天数据罢了,影响并不是特别大,所以暂时就这么用着了。

目前博客大部分不含大图的页面都能够在1秒左右的时间内加载完毕,有时候会到2秒(本机和机房电脑测试是这样),除了两个页面要调用Github 的 API ,所以会比较慢。

另外,即便采用了自建CDN的analytics.js,还是需要去访问 www.google-analytics.com 这个网址一次,有时候发抽了,就会一直卡在这里,也会由相当一部分时间,由于这个请求导致无法实现秒加载。

上最终效果图: