是否有理由把谷歌分析放在头脑而不是身体的最后? (我在大网站上工作,以这种方式工作)
选项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(修复)
由于
答案 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)
我建议使用异步谷歌分析代码。
如果您使用非异步代码并将其放入head部分,如果ga代码加载速度很慢,它可能会阻止您网站的负载,因为它会一直等到脚本加载完毕。而且因为谷歌分析是一个外部脚本,你可能对负载性能没有影响(通常它应该没关系,但即使谷歌有服务器问题也可能发生。)
所以,不,我没有看到这样做的真正理由。
答案 2 :(得分:2)
没有充分的理由。 Google自己建议将标记放在正文的底部,以避免在早期加载它并减慢页面加载速度。
可能是这样做的,因为有人习惯将<script>
标记放在标题中。
答案 3 :(得分:0)
出于性能原因,建议在html中尽可能降低这些描述。需要加载的脚本会中断浏览器中的其他下载。我建议你看一下这篇文章:Best Practices for Speeding Up Your Web Site。