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@H_404_22@ provides the logic that loads the@H_404_22@ tracking code in parallel with other@H_404_22@ scripts on the page. It executes an@H_404_22@ anonymous function that dynamically@H_404_22@ creates a element and sets@H_404_22@ the source with the proper protocol.@H_404_22@ As a result,most browsers will load@H_404_22@ the tracking code in parallel with@H_404_22@ other scripts on the page,thus@H_404_22@ 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数组就可以在加载时为所有调用提供服务.

原文链接:https://www.f2er.com/js/156960.html

猜你在找的JavaScript相关文章