我正在阅读Which browsers support script async,正在讨论Google的脚本,如下所示:
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'xxx']);
_gaq.push(['_trackPageview']);
(function () {
var ga = document.createElement('script');
ga.type = 'text/javascript';
ga.async = true;
ga.src = 'https://ssl.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(ga, s);
})();
在SO帖子中,它声明:
谷歌指定的异步支持是通过两部分实现的:
使用页面上的脚本(脚本由google提供)进行编写 向DOM发送
<script>
标记。该脚本具有
async="true"
属性以表示兼容 浏览器,它可以继续呈现页面。第一部分适用于不支持
<script async..
的浏览器 标签,允许他们用“黑客”加载异步(虽然漂亮 稳固的),并且还允许在不等待的情况下呈现页面 ga.js将被检索。第二部分仅影响了解其中的兼容浏览器
async
html属性
这让我很困惑。如果他们已经使用另一个'hack'为不遵循async:true属性的浏览器提供异步支持,那么上面脚本中的异步属性是什么?这种黑客攻击不适用于所有浏览器吗?