为什么Google Analytics会动态地将javascript注入页面

bow*_*erm 4 javascript google-analytics

我为什么需要使用:

(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);
})();
Run Code Online (Sandbox Code Playgroud)

代替:

<script async="true" type="text/javascript" src="http://www.google-analytics.com/ga.js"></script>
Run Code Online (Sandbox Code Playgroud)

我能看到的唯一原因是他们有一个不同的SSL子域.如果不是因为有任何理由使用这种脚本注入技术?

tec*_*bar 6

  1. 能够服务httphttps取决于父页面的协议是一个原因.

  2. 由于脚本是script通过运行JS代码插入的标签注入的,因此不会阻止页面加载.这是另一个原因.但这也可以通过新的HTML5 异步属性实现(但这与旧版浏览器不兼容 - 并且GA绝对需要与几乎所有这些兼容)

  • 主要是#2(和子域).点#1可以通过[只启动没有协议的URL]来解决(http://blog.niftysnippets.org/2011/01/skipping-protocol.html)(...`src ="// www.google -analytics.com/ga.js"`...). (4认同)