首页 > Web > Google Analytics异步加载简单分析

Google Analytics异步加载简单分析

Google 是一家伟大的互联网公司,其Analytics 统计代码,各个大站小站也都在免费的用。月初,Google 为我们带来了圣诞礼物,那就是新的统计代码支持异步加载了。

大家对这个异步加载,及其新的功能以及改进的地方可能不太清楚,小小子也只是简单的看了一下介绍,在这里简单的和大家谈一谈,纯聊天,勿攻击。~~

改进的原因

  1. 不要让用户等待你的js下载
  2. 熟悉网络的人可能都知道,js加载是会阻塞进程的,也就是说其并不会与其网页内容并行下载。那么当一个脚本文件太大,或者是服务器宕机(Google基本不会,不过会被河蟹,你仍然访问不了)那么就会使正常的页面无法展现。

    解决这个问题通常有两种办法(也许更多,欢迎指证)

    1. 把js放在页面最下面(大家通常也是这么做的)
    2. 使js异步加载,也就是说该下载的都完事了,再来下载js,不影响正常使用
  3. 使统计的数据更准确
  4. 作为网站的管理员,我们当然希望使用的统计代码告诉我们的统计数字更加准确。然而在以前其实这个数字是不够准确的。虽然现在也一定并不完全符合事实,但是Google在让它无限接近于真实情况。

    为什么数字是不准确的,因为有些人操作可能非常快,在你的统计代码还没有下载完全的时候就跳出你的网站,或者是去浏览其他子页面,这样你前面的统计其实是并不准确的。

Google是如何处理的

说实话,这个话题有点玩大了的感觉。因为Google的统计代码及其原理我不熟,只是从其官网上的话来简单的翻译了一下,并且看了一下大致实现。肯定是有不准确的地方,大家多多担待。

看一下新的实现方式吧,就着方式是更好说一些,大家可以去看原文介绍(自备梯子),嗯:

 var _gaq = _gaq || [];  
 _gaq.push(['_setAccount', 'UA-XXXXX-X']);  
 _gaq.push(['_trackPageview']);  
 (function() {    var ga = document.createElement('script');    ga.src = ('https:' == document.location.protocol ? 'https://ssl' :         'http://www') + '.google-analytics.com/ga.js';    ga.setAttribute('async', 'true');    document.documentElement.firstChild.appendChild(ga);  })();

Google采用了一个匿名函数来使你的统计ga.js延时加载,这样不会影响用户等待你js的下载时间,这对应于上面的第一点。

然而延时加载怎么记住数据呢?别急,看到那了个_gaq没有?这可是ga.js新增的东西。

总结发言:

利用此对象可以使每个用户来的时候都向该对象里面push一个_trackPageview,这样ga.js下载下来的时候会自动来翻译_gaq里面带的数据的,这样使你的统计数据更加准确。

言尽于此,多了我也不清楚了,里面的代码不仔细看是不会明白的。有时间再深入研究一下,在这里只是想说Google 真牛。

  1. bolo 十二 10th, 2009 @ 17:16 | #1

    Google只要动动手指就能搞出个异步加载了,Ads早实现了这个功能

  2. simaopig 十二 10th, 2009 @ 17:17 | #2

    @bolo
    不会那么简单吧。ga.setAttribute(‘async’, ‘true’); 这个方法可是专为HTML5准备的啊。

    ADS我不清楚。只是这个是12月出来的。呵。

  3. Cherry 十二 10th, 2009 @ 18:01 | #3

    没有研究过,注意下了。 :grin:

  4. Louis Han 十二 11th, 2009 @ 00:58 | #4

    我前几天也改成了异步的代码了

  5. LAONB 十二 11th, 2009 @ 17:36 | #5

    你要拿来做展示吗 :?:
    异步加载是门户站干出来的,之前也没见谁公开代码 :mrgreen:

  6. simaopig 十二 11th, 2009 @ 17:37 | #6

    @LAONB
    不会啊。其实网上有好多这种代码的,只不过标题可能不是这样吧。呵呵。

  7. LAONB 十二 11th, 2009 @ 18:40 | #7

    @simaopig
    以前不知道啊,似乎看过滑动门异步调用的,但是作者强烈建议不要用 :grin:

  8. simaopig 十二 11th, 2009 @ 21:08 | #8

    @LAONB
    异步加载好处多多,可以搜一下啊。呵呵。

    你说的那种属于“伪异步”(我同事起的名字)。呵呵。

评论提交中, 请稍候...

留言

可以使用的标签: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>
Trackbacks & Pingbacks ( 0 )
  1. 还没有 trackbacks