高效能 JavaScript 筆記 (一)
阿新 • • 發佈:2019-01-10
載入和執行
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 執行時間。