analytics.js 工作原理
ma 命令队列
跟踪代码段定义了一个称为“命令队列”的全局函数 ma
。之所以称其为命令队列,是因为该函数不会立即执行其中的命令,而是将这些命令加入到队列中,将这些命令的执行延迟到 analytics.js 库加载完成后进行。
跟踪代码段在 ma
函数对象上定义了一个值为空数组的 q
属性。在 analytics.js 库尚未加载完成之前,调用 ma()
函数会将传递给 ma()
函数的参数列表附加到 q
数组的尾部。
例如,如果您运行跟踪代码段并立即将 ma.q
中的内容写入控制台日志,就会看到一个数组,其中有两个元素,分别包含已传递给 ma()
函数的一组参数:
console.log(ma.q);
// 输出以下内容:
// [
// ['send', 'pageview']
// ]