摘要:如果遇到多個帶的標簽,那么他們的執行順序是無法保證的。就像上面的代碼,無法保證一定會在前面執行。但是這兩個腳本都會先于事件執行。
在HTML里面使用javaScript有兩種方式:
1: 通過
以上的一段代碼,如果是放在
里面,那么頁面的解析(頁面的解析是遇到開始)就要等這兩段script執行完了才會開始,并且規定那個先出現就先執行哪個,所以以上代碼會先執行alert("hello"),再執行alert("javaScript")如果上面的代碼是放在body里面, 那上面代碼的存在則會直接導致頁面的解析,要等這段js代碼執行完了,再繼續頁面解析的工作。
3:通過
以上的情況瀏覽器會按照文件出現的先后順序去下載和執行代碼,意思就是b.js會在a.js執行完之后再執行。 **2:通過
遇到帶有async屬性的 從這個圖對比上面的第2種情況,可以看出,在下載js文件的時候,頁面的解析依然是在執行的,只是下載完之后js的執行會阻塞頁面的解析。 先來看一下defer的圖像表示: defer只在
如果上述代碼是放在body里面,那么它也是阻塞的,如果用圖表示的話就是:
如果遇到多個帶async的