2011-07-17 101 views
2

我在Google Analytics(分析)中使用自定義變量,並不確定爲什麼以下內容可以正常工作。爲什麼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

第一個不首先執行,並且不處於自執行功能

它由對$函數的調用組成,並且有一個參數:匿名函數。

$是一個非常糟糕的命名功能。這個名字本身是沒有意義的,它已被六家不同的圖書館採用來做六種不同的事情。

在jQuery中,如果您將函數傳遞給$,它會在觸發ready事件(但正在解析HTML文檔的末尾)時運行該函數。這可能是這裏發生的事情。

+0

我使用了firebug,並在兩個函數中都放置了斷點,它首先進入google,然後進入頂部。對於第一個不是自執行功能的人來說,你是對的,這就是爲什麼它沒有被首先執行。 – chobo

+0

第一個**腳本**首先被執行。它定義的函數不會首先執行(它會傳遞給'$()')。如果你在該函數中插入一個斷點,那麼這個斷點將被調用,直到該函數被調用。 – Quentin

相關問題