javascript - Google Analytics 跟踪代码中的双脚本标签

标签 javascript google-analytics tracking

这更多的是一个好奇心问题......

Google 指示添加分析跟踪代码,如下所示:

<script type="text/javascript">
   var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
   document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
</script>
<script type="text/javascript">
   try{
      var pageTracker = _gat._getTracker("UA-xxxxxx-x");
      pageTracker._trackPageview();
   } catch(err) {}
</script>

我想知道这里的一些 JS 专家可以告诉我为什么他们将其分成两个脚本标签而不是将其全部粘在一个标签中。我知道顶部部分可以放在标题中,底部部分可以放在正文标记之前,以确保页面在跟踪之前加载,但我想知道是否还有更多内容。任何了解这一点的人都可能知道如何将代码分成两个标签。

我只是问这个,因为它来自 Goog,并被数百万个网站使用......

谢谢

最佳答案

这是为了保持跨浏览器的一致性,它需要确保 document.write() 在下一个脚本 block 运行之前粘贴它生成的标签,因此结果如下所示:

<script src='http://www.google-analytics.com/ga.js' type='text/javascript'></script>
<script type="text/javascript">
   try{
      var pageTracker = _gat._getTracker("UA-xxxxxx-x");
      pageTracker._trackPageview();
   } catch(err) {}
</script>

如果它没有在 2 个脚本中执行此操作,则 _gat 将在第二个脚本 block 中未定义,因为 ga.js 尚未加载...然而,作为该脚本 block 之前的一个脚本 block ,页面会在执行最后一个 block 内的代码之前等待,从而使其在应该的时候正常工作。基本上,浏览器按顺序执行脚本 block ,Google 利用这一事实在需要加载脚本时加载脚本......即在使用脚本之前。

关于javascript - Google Analytics 跟踪代码中的双脚本标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2831037/

相关文章:

javascript - 如何动态填充对象数组?

javascript - 获取两个数组之间的差异(包括重复项)

javascript - Google Analytics 使用什么来跟踪用户事件?

javascript - 设置 Google Analytics 自定义维度值而不发送额外的综合浏览量

asp.net - 如何在服务器端 asp.net 中跟踪 Google Analytics 事件?

C# - 如何访问 WLAN 信号强度和其他信息?

php - Javascript函数发布和调用php脚本

javascript - ng 单击和/或 ng 更改

google-analytics - 按页面路径过滤年龄范围和性别

google-analytics - 单页网站上的Google Analytics(分析)跳出率低于100%