谷歌为什么建议在<head>中的*脚本之后放置Analytics异步代码*?

con*_*t47 8 javascript google-analytics

谷歌为什么建议在你的html中的分析异步跟踪代码之前放入js脚本? http://code.google.com/apis/analytics/docs/tracking/asyncMigrationExamples.html

这是引用:

"注意:为了确保异步代码段相对于其他脚本的最简化操作,我们建议您通过以下方式之一在网站中放置其他脚本:在HTML部分中的跟踪代码段之前

ide*_*ide 4

异步分析代码片段的工作是加载一个更密集的脚本,该脚本检查用户浏览器中的各种信息以识别用户,以便它可以向分析服务器报告。然而,由于所有这些分析数据对于页面的可用性并不重要,谷歌希望在浏览器方便的时候运行它。

理论上,他们可以建议程序员将异步片段添加到页面的最底部,作为正文的最后一个元素。但是,为了允许程序员捕获 UI 事件以发送到分析,他们希望_gaq尽早使用该变量。例如,您可能有一个按钮:<button onclick="_gaq.push(...)">Track</button>。通过_gaq尽早提供,异步代码片段中的一小部分代码将对这些消息进行排队,而较重的代码ga.js将在稍后将它们发送到服务器。

现在,一些实现细节:通过将新元素添加到具有属性集的文档头来ga.js加载。IE 和 WebKit 将异步加载从脚本插入的标签。Firefox 和 Opera 将尊重该属性并异步加载脚本。无论哪种方式,都是异步加载的,以方便浏览器。<script>async<script>asyncga.js

最后,一旦ga.js执行,就不会因为异步加载而阻塞页面渲染,它可以完成收集所有用户数据和队列中的任何消息_gaq并将它们发送到服务器的繁重工作。

摘要:此方法使用一个小型内联脚本来初始化一些关键变量,例如_gaq您的页面可以在完整ga.js脚本准备就绪之前访问的变量。这个小脚本还动态地将<script src="ga.js">标签添加到文档中,大多数浏览器将异步下载并执行它,而不会阻止页面的呈现或关键脚本的评估。