高效能js之js檔案的載入與解析

2022-07-20 23:57:12 字數 705 閱讀 4593

隨著**的發展,現在的網頁已經離不開js,經常乙個頁面會引入大量的js。那麼該如何合理的載入這些js?

head標籤中引入js檔案可能是最常見的一種方式,但是這樣會造成乙個問題。因為j可以說是瀏覽器中的霸主,換句話說在js的引入和解析過程中頁面是不會進行載入和渲染的。那麼如果js載入的時間過長,就會造成頁面一段時間的空白,這樣的使用者體驗無疑是很差的。下圖是引入head中js和css時的載入過程。

從上圖可以看到載入和解析每個js檔案時都會耗費一定的時間,而這段時間不能同時進行別的事情,顯然這種情況是不合理的,下面將介紹幾種解決辦法。

1.將所有標籤盡可能的放在靠近的底部,這樣js的載入將在頁面渲染完後進行,不會造成頁面空白的現象。

3.使用的defer屬性。defer屬性是html4增加的東西,只在internet explorer和firefox 3.5以上版本才支援。defer 屬性規定是否對指令碼執行進行延 遲,直到頁面載入為止。但是要確保中的js不會改變文件的內容,也就是說沒有document.write.

4.實現js的動態載入。例如可以將js的引入封裝成乙個函式,然後在頁面載入完成後再呼叫函式,個人覺得這種方法太麻煩,但是有一些js庫可能有封裝好的方法。

總結:以上五種方法可能最常用的也就是前兩種,剛開始刻意要求自己做到前兩點,養成習慣後就會覺得順理成章。

高效能js 載入和執行

指令碼載入 無阻塞的指令碼 延遲的指令碼 動態指令碼元素 var script document.createelement script script.src file1.js document.getelementsbytagname head 0 script function loadscr...

為了提高效能,怎樣動態載入JS檔案

可是有些檔案是在開啟某些型別的 時才須要載入。比如,僅僅有當開啟甘特圖 時,才須要載入gantetu.js檔案。那麼問題來了,為了降低js檔案數量和請求,怎樣在須要時自己主動載入js檔案呢?辦法例如以下。假設就這樣了,還不完美。由於這是動態非同步載入的。超級 程式中。在執行這種方法後立即會執行js檔...

js 效能優化整理之 惰性載入

function addevent element,type,handler else if element.attacheevent else 每次呼叫 addevent 函式的時候,它都要對瀏覽器所支援的能力進行檢查,首先檢查是否支援addeventlistener 方法,如果不支援,再檢查是否...