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

Yos*_*sef 12 javascript google-analytics jquery-ui

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

选项1:

<head>
<script src="http://www.google-analytics.com/ga.js"></script>
</head>
Run Code Online (Sandbox Code Playgroud)

选项2 - 身体底部:

<body>
//html code

<script src="http://www.google-analytics.com/ga.js"></script>
</body>
Run Code Online (Sandbox Code Playgroud)

Edit1:与jquery ui也是同一个问题

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

谢谢

Yah*_*hel 30

以你描述的方式嵌入ga.js代码(使用硬编码<script>标签)确实是阻塞的,如果你加载这样的脚本,最佳实践被认为是在</body>标签之前加载它.但是,如果您使用新的异步代码,这不是推荐的做法.Google明确建议将新的异步代码放入<head>.

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

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

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

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


enr*_*cog 6

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

异步Google Analytics

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

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