2011-07-17 6 views
2

私はGoogleアナリティクスでカスタム変数を使いこなしていましたが、実際に次のようなことが実際に機能する理由は不明でした。 Googleのトラッキングコードが最初に実行されるのはなぜですか(特にページの最下部にあるため)。GoogleのAnalyticsトラッキングコードが最初に実行されるのはなぜですか?

どちらのスクリプトも自己実行機能になっていますので、どのスクリプトを最初に実行するかはjavascriptによってどのように決定されますか?

// top of the page 
    <script type="text/javascript"> 
       $(function() 
       { 
        _gaq.push(['_setCustomVar', 1, 'Account', 'PartTime', 1]); 
       }); 
     </script> 


// bottom of the page 
     <script type="text/javascript"> 

      var _gaq = _gaq || []; 
      _gaq.push(['_setAccount', 'UA-xxxxxxxxxx']); 
      _gaq.push(['_setDomainName', '.xxxxxxxx.com']); 
      _gaq.push(['_trackPageview']); 

      (function() 
      { 
       var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; 
       ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; 
       var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); 
      })(); 

     </script> 

答えて

5

最初のものは、最初に実行ず、自己実行機能にありません。

これは、$関数への呼び出しで構成され、1つの引数、つまり匿名関数を持ちます。

$は非常に悪名高い機能です。名前そのものは無意味で、6ダースの異なる図書館で6つの異なることをするために採用されています。

jQueryでは、$に関数を渡すと、readyイベントがトリガーされたとき(ただし、解析されているHTMLドキュメントの最後)にその関数が実行されます。これはおそらくここで起こっていることです。

+0

私はファンクバグを使用して両方の機能にブレークポイントを設定し、最初にgoogle oneに行きます。そして、それが一番上のものに入ります。最初に実行されていない理由は自己実行機能ではないということです。 – chobo

+0

最初の**スクリプト**が最初に実行されます。定義した関数は最初に実行されません( '$()'に渡されます)。その関数にブレークポイントを張ると、関数が呼び出されるまでそのブレークポイントがヒットします。 – Quentin

関連する問題