Google Analytics设置说明指出:
此跟踪代码段应包含在您网站的页面中 它出现在底部 页面的HTML(或生成的HTML) 结构,在结束<body>之前 标签。
他们的代码段是否需要此展示位置才能完全发挥作用,或者Google是否仅仅因为它提高了页面加载性能以使脚本位于底部而提出此建议?
Google Analytics设置说明指出:
此跟踪代码段应包含在您网站的页面中 它出现在底部 页面的HTML(或生成的HTML) 结构,在结束<body>之前 标签。
他们的代码段是否需要此展示位置才能完全发挥作用,或者Google是否仅仅因为它提高了页面加载性能以使脚本位于底部而提出此建议?
这只是为了提高页面加载性能。如果此代码在开头,那么如果由于某种原因分析代码运行缓慢,页面的其余部分将等待它在加载之前完成或超时。
分析代码可能会向Google的服务器发出查询,因此他们必须等待服务器在完成之前做出响应。如果(上帝保佑)谷歌的网络服务器要备份或滞后,这将严重影响您网站的加载时间。
有一篇文章 更好的Google Analytics JavaScript不会阻止页面下载。见相关 如何动态加载Google AnalyticsJavaScript? 关于SO的问题也是如此。
从 YSlow指南
脚本引起的问题是 他们阻止并行下载。该 HTTP / 1.1规范表明了这一点 浏览器下载不超过两个 每个主机名并行的组件。 如果您从多个图像提供图像 主机名,你可以得到两个以上 下载并行发生。而 然而,脚本正在下载 浏览器不会启动任何其他 下载,甚至是不同的 主机名。
在某些情况下,这并不容易 将脚本移到底部。如果,为 例如,脚本使用 document.write插入部分内容 页面的内容,它无法移动 在页面下方。可能还有 范围问题。在许多情况下,那里 是解决这些问题的方法 的情况。
另一种常见的建议 出现的是使用延迟脚本。 DEFER属性表示 脚本不包含 document.write,是一个线索 浏览器,他们可以继续 渲染。不幸的是,Firefox 不支持DEFER属性。 在Internet Explorer中,脚本可以 被推迟,但没有那么多 期望。如果脚本可以延期, 它也可以移到底部 这一页。这将使你的网络 页面加载速度更快
我发现谷歌提供的代码有时会因客户端延迟而导致页面加载延迟。通过将它放在源代码的底部,它不会导致浏览器停止并等待javascript完成后再继续页面再现。
将Analytics代码移动到domready / onload函数中,以获得最佳性能结果。
昨天我被一位同事问到了这个问题。我想,在执行脚本之前,它将与正在加载的整个文档有关。
如果加载了更多文档,则脚本可以处理更多文档。
我很确定它只是用于页面性能。当然,这可以在页面最初加载所有内容时不需要的任何javascript库/代码段完成。
底部的标记过去只是为了最大限度地减少跟踪脚本对网站行为的可能影响:优先考虑的是有一个功能性网站,一旦它工作,跟踪它。您可能无法跟踪所有页面视图,但这对最终用户来说不那么重要。
异步语法解决了可靠性和性能问题,同时保持了易于部署的特点。
它发生在HEAD部分的末尾。