Universal Analytics 使用自动执行功能:
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
这将创建一个脚本标记来加载 analytics.js 文件。这个脚本标签有一个异步属性,在这种情况下异步意味着这是非阻塞的(显然动态创建脚本标签已经意味着加载将是非阻塞的:“有六种主要技术可以在不阻塞的情况下下载脚本:[. ..] Script DOM Element – 创建一个脚本元素并将其 src 属性设置为脚本的 URL。") .
因此,在引导代码运行后开始加载外部 Google Analytics 文件;由于异步加载(对于支持异步的浏览器),您无法准确定位它何时加载,但出于实际目的,它并不重要,因为它不会干扰其他操作。
至于 Tomeks 的评论,您不想在 DOM Ready 上启动引导功能。它创建一个日期对象,用于计时报告,例如确定从页面加载到 DOM 就绪需要多长时间;如果您在加载代码之前等到 DOM 准备好,您会破坏时间报告(这也是 GA 代码应该位于页面顶部的原因)。