为什么Google Analytics构建方式如此?

时间:2011-10-28 13:35:31

标签: javascript google-analytics

插入谷歌分析的谷歌代码:

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>

提前致谢,

5 个答案:

答案 0 :(得分:3)

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

  

异步代码段的一个主要优点是您可以   将它放在HTML文档的顶部。这增加了   跟踪信标将在用户之前发送的可能性   离开页面。习惯上将JavaScript代码放入    部分,我们建议将片段放在底部   最佳表现部分。

答案 1 :(得分:2)

以这种方式完成,因此它可以使用正确的协议(http://或https://)加载js文件

答案 2 :(得分:2)

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';
}

答案 3 :(得分:1)

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

答案 4 :(得分:0)

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