0

当某些资源完成加载时会触发一些事件,例如https://developer.mozilla.org/en-US/docs/Web/Events/DOMContentLoadedhttps://developer.mozilla.org/en -US/docs/Web/Events/load

我想知道是否有办法找出何时加载谷歌分析代码,即什么事件触发谷歌分析加载?

我试图在不妨碍加载更重要资源(例如 HTML 本身、图像、样式表和其他脚本)的情况下包含脚本。另外,我需要它独立于 jQuery 等库工作。

4

1 回答 1

0

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 代码应该位于页面顶部的原因)。

于 2015-01-07T08:19:19.513 回答