javascript – 解释Google Analytics异步跟踪器

前端之家收集整理的这篇文章主要介绍了javascript – 解释Google Analytics异步跟踪器前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我知道谷歌的异步分析跟踪器是如何工作的.以下代码用于初始化命令数组:
<script type="text/javascript">
  var _gaq = _gaq || [];
  _gaq.push(
    ['_setAccount','UA-xxxxxxxx-x'],['_trackPageview']
  );
</script>

现在,这是一个标准数组,在加载GA代码后会被替换,并用作存储点击的一种队列.

我的困惑在于想知道如果用户点击导致重新加载的链接(在加载GA javascript之前),这些点击可能会如何持续存在.如果GA代码没有捕获到_gaq对象的那个推送,那么用户点击一个链接并转到一个新页面,这个数组每次都没有重新初始化?

在导致刷新的请求中,javascript变量不会持久存在吗?如果是这种情况,那么我们还没有丢失导致页面重新加载的原始点击吗?

非常感谢任何解释.

解决方法

是的,你是对的,如果用户在ga.js加载之前点击了网站,并且已经向Google的服务器执行了__utm.gif请求,那么它将不会跟踪_gaq数组并且该信息将永远消失.但是这个版本代码仍然比旧的同步代码提供了许多好处.

首先,使用此方法加载ga.js不会阻塞.

巧妙地,ga.js的加载是通过JavaScript间接注入的,而不是通过硬编码的<脚本>注入.标签.按照Google Code Blog,

The second half of the snippet
provides the logic that loads the
tracking code in parallel with other
scripts on the page. It executes an
anonymous function that dynamically
creates a element and sets
the source with the proper protocol.
As a result,most browsers will load
the tracking code in parallel with
other scripts on the page,thus
reducing the web page load time.

这意味着ga.js的加载对于大多数现代浏览器以非阻塞方式发生(并且作为一个好处,async =“true”部分,当前在FF 4+,IE10p2+,Chrome 12+,Safari 5.1+,支持正式化此异步).这可以温和地减少加载时间,并且可以轻微降低ga.js加载前发生点击的可能性.

提前排队_gaq阵列的好处是防止竞争条件;之前,如果您在加载ga.js之前尝试进行GA调用(例如,事件跟踪视频播放),则会抛出错误并且事件调用将丢失且永远无法恢复.这样,只要ga.js最终加载,_gaq数组就可以在加载时为所有调用提供服务.

猜你在找的JavaScript相关文章