隨著**的發展,現在的網頁已經離不開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 方法,如果不支援,再檢查是否...