2010-10-06 130 views
14

新的谷歌Analytics(分析)的代碼看起來像一個下面:新的谷歌Analytics(分析)代碼到外部文件

<script type="text/javascript"> 

var _gaq = _gaq || []; 
_gaq.push(['_setAccount', 'UA-0000000-00']); 
_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> 

如何在全新的谷歌Analytics(分析)異步跟蹤代碼移動到外部JavaScript文件?

我特別想問「var _gaq = _gaq || []; [...]」部分,因爲我知道可以移動其餘的例如

的index.html

<script type="text/javascript"> 

var _gaq = _gaq || []; 
_gaq.push(['_setAccount', 'UA-0000000-00']); 
_gaq.push(['_trackPageview']); 

</script> 
<script src="include.js" type="text/javascript"></script> 

include.js

function includeGA() 
{ 
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); 
} 

$(document).ready(function() 
{ 
includeGA(); 
}); 

我已經試着放置「VAR _gaq = _gaq || []; [... ]「代碼到各個位置,但沒有任何工作。

回答

2

我不明白你爲什麼不能把它放在include.js中的「function includeGA()」之上。其實,我不明白爲什麼你不能將整個谷歌腳本直接複製到include.js(沒有$解決方法)。這應該由腳本包含標記內聯,對嗎?

8

再說:把你的谷歌的異步代碼段在外部文件,因爲它會從網上下載的其他內容。具有異步跟蹤代碼的要點是使其與並行

如果使用異步GA只是把它放在頂部你在內嵌腳本標籤記錄。這是Google Analytics website推薦還有:

底部的 頁的<head>部分的插入異步代碼,任何其他腳本後您的 網頁或模板可能使用。

17

你不應該把GA代碼的功能有兩個原因:

  1. GA的變量成爲當地。他們需要在全球範圍內使用。
  2. 只有當整個頁面(文檔,技術上)被加載時才調用函數。這使得下載過程序列化(擊敗異步分析的並行性)。

批評外部JS用於GA代碼的人在這裏有點不對。在js嵌入中引入異步屬性,這是有道理的。我將這個GA代碼保存在外部js中,並將其嵌入到文檔頭部。兩個好處:

  1. 保持代碼整潔(無內嵌GA)
  2. 緩存的js-節省帶寬&加載速度更快

所以HTML將成爲:

<head> 
    <script type="text/javascript" src="static/scripts.js" async></script> 
</head> 

scripts.js將具有:

var _gaq=_gaq||[]; 
_gaq.push(['_setAccount','UA-XXXXXXXX-1']); 
_gaq.push(['_setDomainName','.domain.net']); 
_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) 
})(); 
+0

感謝您的編輯。這是我的第一篇文章。 – 2012-10-29 14:29:31

+0

問題是如果外部文件中的這個小JS代碼值多一個請求...我認爲它不是。 – 2014-07-28 08:27:04

+0

那麼您的代碼提案是否可以使用有效的解決方案? – 2016-04-16 10:48:10

相關問題