2013-02-11 107 views
3

爲什麼我需要使用:爲什麼谷歌Analytics(分析)動態插入JavaScript到頁面

(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 async="true" type="text/javascript" src="http://www.google-analytics.com/ga.js"></script> 

我能看到的唯一原因是,他們有不同的子域爲SSL。如果不是,那麼是否有理由使用這種腳本注入技術?

回答

6
  1. 能夠服務出來httphttps取決於父頁的協議是一個原因。

  2. 由於腳本是通過運行JS代碼插入的script標籤注入的,因此它不會阻止頁面加載。這是另一個原因。但是,這可以很好地通過新的HTML5 async屬性也可以實現(但不是與舊版本瀏覽器兼容 - 和GA絕對需要與幾乎所有的人都兼容)

+4

主要點#2(和子域)。第一點可以通過[只是在沒有協議的情況下啓動URL]來解決(http://blog.niftysnippets.org/2011/01/skipping-protocol.html)(...'src =「// www.google -analytics.com/ga.js「'...)。 – 2013-02-11 15:43:47

+0

@ T.J.Crowder - 是的,這也是正確的,但它是否適用於所有瀏覽器,包括舊版瀏覽器。 Bcoz GA必須與我想象的所有超級兼容。 – techfoobar 2013-02-11 15:44:41

+0

此外,'location.protocol'可用於動態檢測正確的協議。 – marekful 2013-02-11 15:44:46

相關問題