2013-02-26 150 views
0

將組合,縮小,gzip和緩存放在一邊。將腳本標記爲異步仍然保留腳本執行順序嗎?腳本異步標記是否保留腳本執行順序?

說我有一個頁面,頂部包含jquery,後面跟着假設存在jquery的底部的其他腳本。

如果我用async屬性標記jquery腳本,我知道瀏覽器會繼續解析我的html。然而,瀏覽器會保證在我的其他腳本執行之前加載jquery,或者可能會發生亂序,導致未定義的$

回答

1

使腳本異步不保證任何同步執行,除了腳本本身。

<script async src="jquery.js"></script> 
<script> 
    $.noop() // will definitely throw an error 
</script> 

<script async src="jquery.js"></script> 
<script src="someOtherNonAsyncScript.js"></script> 
<script> 
    $.noop() // may or may not throw an error 
</script>