3

在我的网站上加载时,KISSMetrics 有时会导致问题。熟悉它的人可能会知道他们的文档中出现的以下代码段:

<!-- Kissmetrics tracking snippet -->
<script type="text/javascript">var _kmq = _kmq || [];
var _kmk = _kmk || '61d817358af517ab2975dbb768eeb1d6d0d07c4b';
function _kms(u){
  setTimeout(function(){
    var d = document, f = d.getElementsByTagName('script')[0],
    s = d.createElement('script');
    s.type = 'text/javascript'; s.async = true; s.src = u;
    f.parentNode.insertBefore(s, f);
  }, 1);
}
_kms('//i.kissmetrics.com/i.js');
_kms('//scripts.kissmetrics.com/' + _kmk + '.2.js');
</script>

参见:https ://app.kissmetrics.com/setup/integration/9ac2445636036f9151b84b444b1ae78d105d0f7a

这真的很花哨,我想知道为什么我不能比这更简单。

打开文件i.kissmetrics.com/i.js我们看到单行:

if(typeof(_kmil) == 'function')_kmil();

这意味着“如果您将 _kmil 识别为函数,请运行 _kmil()。” 同时,是您看到的第二个脚本中定义的函数_kmil()的别名。KM.ikmq()

scripts.kissmetrics.com/61d817358af517ab2975dbb768eeb1d6d0d07c4b.2.js当第二个脚本° 无法加载或加载延迟时,似乎出现了问题。

我想改为执行以下操作:放入scripts.kissmetrics...我的 html 的头节点,然后,而不是 include ,只需在我为 KISSMetrics 跟踪的单击事件注册我的侦听器之前i.js运行该函数。window.KM.ikmq()

如果有的话,这样做的缺点是什么?

var _kmq = _kmq || [];完全可选的额外问题:如果该变量_kmq未在脚本的其余部分中使用,那么上面代码片段中第一行代码的目的是什么?

° 十六进制字符串是此处用于演示目的的假密钥

4

0 回答 0