1. 程式人生 > >高效能 JavaScript 筆記 (一)

高效能 JavaScript 筆記 (一)

載入和執行

1.按順序載入

可以在 html 任何位置引入 js ,但值得注意的是,瀏覽器總是先下載 js 再渲染 dom 元素,js 控制 dom 元素時,必須在元素載入完之後才可以正常執行。因此,建議將 js 放在檔案末尾,一是保證 dom 元素已經載入完畢,二是在 js 檔案較多的情況下,儘可能減少頁面延遲。

還建議儘量減少 js 檔案數量,避免多此發起連結請求浪費時間。

2.動態指令碼元素

程式碼如下:

var script = document.createElement("script");
script.type = "text/javascript";
script.src = "file1.js";
document.getElementssByTagName("head")[0].appendChild(script);

這段程式碼被新增到頁面時會開始下載 file1.js 檔案。但是由於 js 載入檔案是非同步載入的,所以在下載 file1.js  檔案時,不會阻塞頁面的其他程序。

js檔案是下載一部分立即執行該部分。一般來說不會有什麼問題,但是如果程式碼提供了供其他頁面呼叫的介面時,我們就必須等到js程式碼下載完之後再執行,那麼如何獲取它的載入狀態呢?可以通過 onload 函式進行監聽,script 函式接收完之後會出發一個 load 事件。

var script = document.createElement("script");
script.type = "text/javascript";
script.onload = function(){
    alert("script loaded");
}
script.src = "file1.js";
document.getElementssByTagName("head")[0].appendChild(script);

3.XMLHttpRequest 指令碼注入

 

通過 get 請求來獲取 js 檔案。這樣做的好處是,可以自由控制 js 執行時間。