4

为什么我需要使用:

(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 子域。如果不是这样,还有什么理由使用这种脚本注入技术?

4

1 回答 1

6
  1. 能够提供服务httphttps依赖于父页面的协议是原因之一。

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

于 2013-02-11T15:42:04.730 回答