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()
、2 番目のスクリプトで定義されている関数です。
その2番目のスクリプト、scripts.kissmetrics.com/61d817358af517ab2975dbb768eeb1d6d0d07c4b.2.js
°のロードに失敗したり、ロードに遅延が発生したりすると、問題が発生するようです。
代わりに、次のことを実行したいと思います: scripts.kissmetrics...
HTML のヘッド ノードに配置し、 include ではなく、KISSMetrics で追跡されるクリック イベントのリスナーを登録する直前にi.js
関数を実行します。window.KM.ikmq()
もしあれば、これの欠点は何ですか?
var _kmq = _kmq || [];
完全にオプションのボーナス質問:変数_kmq
がスクリプトの残りの部分で使用されていない場合、上記のスニペットのコードの最初の行の目的は何ですか?
° 16 進数の文字列は、デモ用にここで使用されている偽のキーです。