gpt4 book ai didi

javascript - Google Analytics JavaScript 函数如何在没有异步/竞争条件问题的情况下加载和运行?

转载 作者:行者123 更新时间:2023-11-28 19:33:35 24 4
gpt4 key购买 nike

安装 Google Analytics(分析)时,其最新版本的代码(针对 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');

ga('create', 'UA-XXXXXXX-X', 'auto');
ga('send', 'pageview');

代码的第一部分创建一个 <script>标签加载analytics.js ,那么第二部分使用 ga()函数来激活脚本。

我的问题是 - 加载是否需要一些时间 analytics.jsga() 怎么样?函数在执行之前知道要等待吗?为什么不ga()尝试在脚本加载之前运行?

我想使用类似的机制,并希望更好地理解 Google 的代码会有所帮助。

最佳答案

ga.js 中更清楚代码库比这里的代码库要大,但原理完全相同。

  1. 创建一个空数组(将其视为队列)
  2. 将命令推送到此数组
  3. 加载 JS 文件后,运行数组并执行命令
  4. 最后,覆盖推送到数组以解析和执行命令的方法

对于analytics.js它几乎是相同的东西,但包装在一个函数中(可以重命名)。为了回答您的问题,您发送的链接几乎总结了它,但为了清楚起见:由于代码块包含临时解决方案的初始化(将命令推送到数组但不实际执行命令),ga()存在,因此运行时不会出错。

关于javascript - Google Analytics JavaScript 函数如何在没有异步/竞争条件问题的情况下加载和运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26312990/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com