2010-09-16 61 views
1

當我們在頭部動態插入JS spript時,會觸發JS文件的解鎖(或與其他資源並行)下載。一旦JS被下載,瀏覽器在解析和執行腳本時會阻塞,還是解析和執行也是異步的?JS頭部動態添加

var headID = document.getElementsByTagName("head")[0];   
var newScript = document.createElement('script'); 
newScript.type = 'text/javascript'; 
newScript.src = 'http://www.somedomain.com/somescript.js'; 
headID.appendChild(newScript); 

回答

2

以下步驟,以便發生:

1)腳本負載
2.)腳本獲取interpretted(塊JavaScript的線程)
3.)腳本負載/完整事件觸發。

JavaScript是單線程的,解釋和執行將因此阻止其他腳本。它也會阻止DOM呈現。動態添加腳本的唯一好處是可以防止腳本加載阻止DOM呈現。

1

只有下載同時發生。正如@BGerrissen所述,JavaScript是單線程的。解釋和執行會阻止UI線程。