2014-01-22 41 views
2

Html5异步属性vs js异步属性有什么区别?Html5异步属性vs js异步属性

<script src="http://www.google-analytics.com/ga.js" async> 

(function() { 
    var ga = document.createElement('script'); 
    ga.type = 'text/javascript'; 
    ga.async = true; 
    ga.src = 'http://www.google-analytics.com/ga.js'; 
    var s = document.getElementsByTagName('script')[0]; 
    s.parentNode.insertBefore(ga, s); 
})(); 

是它们可互换

+0

'(function(){...});'在' ...'或在js文件上? –

+0

其在头部标签 – aWebDeveloper

+0

我相信在头部标签内的效果是相同的。我个人更喜欢'

0

JavaScript正在创建您正在讨论的HTML元素。在JavaScript中,属性本身没有意义,在这种情况下,它只是一个值为true的属性。

当浏览器读取HTML时,该值会有意义。

3

不,它们不可互换。

具有异步属性的脚本标记在第一次下载之后并且在window.onload事件之前执行。所以当脚本执行时,你不知道。 另一方面,在JavaScript文件中加载的脚本可以随时执行(在window.onload事件之前或之后)。

部分链接:http://davidwalsh.name/html5-async,https://developer.mozilla.org/en-US/docs/Web/HTML/Element/script

编辑: ga.async = true;如萨勒曼A.答案(https://stackoverflow.com/a/14666847/2044286)所述被分析器删去。

+0

那么如果你设置's.async = false',会发生什么? –

+0

没什么。它没有效果(对于小文件,至少)。 –