当通过JavaScript注入<script>时,async是否会执行任何操作?</script>

时间:2014-10-06 19:55:45

标签: javascript html asynchronous script-tag

我正在阅读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属性的浏览器提供异步支持,那么上面脚本中的异步属性是什么?这种黑客攻击不适用于所有浏览器吗?

0 个答案:

没有答案