为什么谷歌分析是这样构建的?

Why is Google Analytics constructed the way it is?

本文关键字:构建 谷歌 为什么      更新时间:2023-09-26

插入Google分析的Google代码:

http://www.google.com/support/analytics/bin/answer.py?answer=174090

<script type="text/javascript">
  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-XXXXX-X']);
  _gaq.push(['_trackPageview']);
  (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  })();
</script>

为什么直接插入代码:

<script type="text/javascript" async="true" src="https://www.google-analytics.com/ga.js">
<script type="text/javascript">
  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-XXXXX-X']);
  _gaq.push(['_trackPageview']);
</script>

提前致谢

说明他们在你链接的文档中使用异步代码段的原因:

异步代码段的主要优点之一是将其放置在HTML文档的顶部。这增加了跟踪信标在用户之前发送的可能性离开页面。类中放置JavaScript代码是惯例节中,我们建议将该代码片段放在最佳性能部分。

这样做,所以它可以使用正确的协议(http://或https://)

)加载js文件

GA代码是一个通用代码片段,使用适当的协议在每个页面上包含脚本。使用https协议的页面通过安全连接加载GA脚本。其他协议的页面通过正常(http)协议提供。

代码的重要部分如下:

ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
相当于:

if ('https:' == document.location.protocol) {
    ga.src = 'https://ssl.google-analytics.com/ga.js';
} else {
   ga.src = 'http://www.google-analytics.com/ga.js';
}

因为他们需要确保协议是正确的。当跟踪的页面通过HTTPS通信时,它们需要通过HTTPS进行通信。

我知道如果IE通过https ssl连接加载内容,它不会加载任何通过http链接的内容,所以您的跟踪代码将永远不会被加载。