javascript - 为什么谷歌建议将 Analytics 异步代码放在 <head> 中的 *after* 脚本中?

标签 javascript google-analytics

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

引用如下:

"Note: To ensure the most streamlined operation of the asynchronous snippet with respect to other scripts, we recommend you place other scripts in your site in one of these ways: before the tracking code snippet in the section of your HTML"

最佳答案

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

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

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

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

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

关于javascript - 为什么谷歌建议将 Analytics 异步代码放在 <head> 中的 *after* 脚本中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4963463/

相关文章:

php - 如何获得积分中的前两个数字?

javascript - 如何将数据库中的数据打印到模态弹出框中?

javascript子字符串帮助

regex - 用于验证 Google Analytics UA 编号的正则表达式

ios - 如何将 Google Analytics 集成到 iOS Phonegap 应用程序的 MainView(而不是内部)中?

javascript - textarea 值是否为空 - 检查 jquery 是否不工作,为什么

javascript - 对象在 React 中无效

谷歌分析 - 缺少交易

ios - 谷歌分析不显示 ios 数据

javascript - ga ('send' , 'pageview' , window.location.pathname);