是否有理由将谷歌分析置于头脑而不是身体?

时间:2010-09-12 09:39:05

标签: javascript jquery-ui google-analytics

是否有理由把谷歌分析放在头脑而不是身体的最后? (我在大网站上工作,以这种方式工作)

选项1:

<head>
<script src="http://www.google-analytics.com/ga.js"></script>
</head>

选项2 - 身体底部:

<body>
//html code

<script src="http://www.google-analytics.com/ga.js"></script>
</body>

EDIT1: 还有与 jquery ui

相同的问题

EDIT2: 在脚本末尾添加ga.js(修复)

由于

4 个答案:

答案 0 :(得分:30)

以您描述的方式嵌入ga.js代码(使用硬编码的<script>标签)确实是阻塞的,如果您加载这样的脚本,最好的做法是在之前加载它</body>标记。但是,如果您使用新的异步代码,这不是推荐的做法。 Google explicitly recommends placing the new asynchronous code in the <head>.

新的异步代码在两个方面是非阻塞的。首先,它将全局_gaq变量中的页面变量排队。这样,数据就可以用任何一种方式准备。

然后,如本SO answer所述,使用javascript直接写出脚本就像在新的异步代码中一样是非阻塞的(这种直接注入方法是实现异步的方法,即使在浏览器中也是如此)不直接观察async属性)。如果由于某种原因Google的服务器出现故障或响应缓慢,网站的其余部分可能会继续加载。只有当用户没有像许多人那样缓存ga.js时才会这样做,因为ga.js用于许多很多热门网站。

所有这一切的好处是,ga.js加载的时间越早,并且能够将_gaq对象传输给Google,您就越有可能捕获所有潜在数据,例如用户的数据。在您的页面上快速点击。这对于那些往往会有很多常规用户遵循快速点击习惯的“大型”网站尤为重要。

如果您持怀疑态度,请使用webkit开发人员工具等页面加载检查器对其进行测试。我已经对它进行了广泛的测试,并且在使用</head>中的异步代码时没有发现明显阻塞的证据。

答案 1 :(得分:6)

我建议使用异步谷歌分析代码。

Asynchronous Google Analytics

如果您使用非异步代码并将其放入head部分,如果ga代码加载速度很慢,它可能会阻止您网站的负载,因为它会一直等到脚本加载完毕。而且因为谷歌分析是一个外部脚本,你可能对负载性能没有影响(通常它应该没关系,但即使谷歌有服务器问题也可能发生。)

所以,不,我没有看到这样做的真正理由。

答案 2 :(得分:2)

没有充分的理由。 Google自己建议将标记放在正文的底部,以避免在早期加载它并减慢页面加载速度。

可能是这样做的,因为有人习惯将<script>标记放在标题中。

答案 3 :(得分:0)

出于性能原因,建议在html中尽可能降低这些描述。需要加载的脚本会中断浏览器中的其他下载。我建议你看一下这篇文章:Best Practices for Speeding Up Your Web Site