淺談頁面裝載js及性能分析方法
一、裝載
先裝載靜態(tài)頁面的引用js文件,然后查找引用文件中是否包含onload函數(shù),比如main.js中包含onload函數(shù),在main.js中查找是否有對其他js文件的引用,優(yōu)先裝載引用js文件,被引用中文件的裝載順序和main.js的順序一致。
裝載完畢后,開始執(zhí)行onload函數(shù)。由于js執(zhí)行順序是順序執(zhí)行的,為提高頁面相應(yīng)速度,一般做法是在onload中只畫頁面,一些事件的綁定函數(shù),ajax方法等可延后書寫。
二、響應(yīng)速度分析
1.借助工具進(jìn)行分析
各大瀏覽器的開發(fā)者工具(最喜歡使用火狐)可以方便的查看各個js文件、html文件、css文件及圖片的裝載及執(zhí)行時間。
2.硬編碼分析
在第一步中我們基本能定位到瓶頸js文件了,在瓶頸js中,可以使用console.time('test')和console.Endtime('test')語句對js函數(shù)及代碼塊掐取執(zhí)行時間。不過console語句只在非IE瀏覽器中執(zhí)行有效,而在IE下會報(bào)錯。如果你偏愛使用IE,那就使用時間戳吧。在掐取時,比較方便的方法是,直接掐住整個js文件,然后使用火狐瀏覽器,按F12可以在控制臺中看到目標(biāo)js中所有函數(shù)及代碼塊的耗時,即可定位到瓶頸代碼處。
相關(guān)文章
javascript html5實(shí)現(xiàn)表單驗(yàn)證
這篇文章主要為大家詳細(xì)介紹了javascript html5實(shí)現(xiàn)表單驗(yàn)證的具體代碼,感興趣的小伙伴們可以參考一下2016-03-03微信小程序使用同聲傳譯實(shí)現(xiàn)語音識別功能
語音識別可以將語音精準(zhǔn)識別為文字,在很多場景中都可以使用,本文主要介紹了微信小程序使用同聲傳譯實(shí)現(xiàn)語音識別功能,分享給大家,感興趣的可以了解一下2021-06-06JavaScript 事件監(jiān)聽實(shí)例代碼[兼容IE,firefox] 含注釋
JavaScript事件監(jiān)聽完整實(shí)例 含注釋,非常的不錯,大家可以直接使用。2009-08-08javascript實(shí)現(xiàn)數(shù)組中的內(nèi)容隨機(jī)輸出
本文實(shí)例講述了javaScript數(shù)組隨機(jī)排列實(shí)現(xiàn)隨機(jī)洗牌功能的方法。分享給大家供大家參考。2015-08-08基于Bootstrap框架實(shí)現(xiàn)圖片切換
這篇文章主要介紹了基于Bootstrap框架實(shí)現(xiàn)圖片切換的相關(guān)資料,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2017-03-03微信小程序開發(fā)實(shí)現(xiàn)的IP地址查詢功能示例
這篇文章主要介紹了微信小程序開發(fā)實(shí)現(xiàn)的IP地址查詢功能,可實(shí)現(xiàn)基于第三方接口的IP地址查詢功能,需要的朋友可以參考下2019-03-03JavaScript中常見的高階函數(shù)總結(jié)
JavaScript的函數(shù)其實(shí)都指向某個變量,既然變量可以指向函數(shù),函數(shù)的參數(shù)能接收變量,那么一個函數(shù)就可以接收另一個函數(shù)作為參數(shù),這種函數(shù)就稱之為高階函數(shù),這篇文章主要給大家介紹了關(guān)于JavaScript中常見的高階函數(shù),需要的朋友可以參考下2022-02-02解決axios會發(fā)送兩次請求,有個OPTIONS請求的問題
這篇文章主要介紹了解決axios會發(fā)送兩次請求,有個OPTIONS請求的問題,需要的朋友可以參考下2018-10-10