为什么谷歌建议在*脚本之后放入Analytics异步代码*?

时间:2011-02-10 22:26:25

标签: javascript google-analytics

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

这是引用:

  

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

部分中的跟踪代码段之前

2 个答案:

答案 0 :(得分:4)

异步分析代码片段的工作是加载一个更密集的脚本,检查用户的浏览器是否有各种信息来识别它们,以便它可以向分析服务器报告。但是,由于所有这些分析数据对于页面的可用性并不重要,因此Google希望在浏览器方便的情况下运行它。

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

现在,通过向文档头添加新的ga.js元素并加载<script>属性,可以加载一些implementation detailsasync。 IE和WebKit将异步加载从脚本插入的<script>标记。 Firefox和Opera将尊重async属性并异步加载脚本。无论哪种方式,ga.js都是异步加载的,方便浏览器。

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

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

答案 1 :(得分:2)

当浏览器加载页面时,它从上到下执行此操作。浏览器具有有限数量的“连接”,可用于加载外部链接的文档。如果您将其脚本放在您的脚本之上,则在您的脚本完成之前可能不会加载您自己的脚本。分析代码对页面的功能并不重要,因此我们可以将其保存到最后。