頁(yè)面裝載js及性能分析方法介紹
更新時(shí)間:2014年03月21日 16:18:08 作者:
這篇文章主要介紹了頁(yè)面裝載js及性能分析方法,需要的朋友可以參考下
一、裝載
先裝載靜態(tài)頁(yè)面的引用js文件,然后查找引用文件中是否包含onload函數(shù),比如main.js中包含onload函數(shù),在main.js中查找是否有對(duì)其他js文件的引用,優(yōu)先裝載引用js文件,被引用中文件的裝載順序和main.js的順序一致。
裝載完畢后,開始執(zhí)行onload函數(shù)。由于js執(zhí)行順序是順序執(zhí)行的,為提高頁(yè)面相應(yīng)速度,一般做法是在onload中只畫頁(yè)面,一些事件的綁定函數(shù),ajax方法等可延后書寫。
二、響應(yīng)速度分析
1.借助工具進(jìn)行分析
各大瀏覽器的開發(fā)者工具(最喜歡使用火狐)可以方便的查看各個(gè)js文件、html文件、css文件及圖片的裝載及執(zhí)行時(shí)間。
2.硬編碼分析
在第一步中我們基本能定位到瓶頸js文件了,在瓶頸js中,可以使用console.time('test')和console.Endtime('test')語(yǔ)句對(duì)js函數(shù)及代碼塊掐取執(zhí)行時(shí)間。不過(guò)console語(yǔ)句只在非IE瀏覽器中執(zhí)行有效,而在IE下會(huì)報(bào)錯(cuò)。如果你偏愛(ài)使用IE,那就使用時(shí)間戳吧。在掐取時(shí),比較方便的方法是,直接掐住整個(gè)js文件,然后使用火狐瀏覽器,按F12可以在控制臺(tái)中看到目標(biāo)js中所有函數(shù)及代碼塊的耗時(shí),即可定位到瓶頸代碼處。
先裝載靜態(tài)頁(yè)面的引用js文件,然后查找引用文件中是否包含onload函數(shù),比如main.js中包含onload函數(shù),在main.js中查找是否有對(duì)其他js文件的引用,優(yōu)先裝載引用js文件,被引用中文件的裝載順序和main.js的順序一致。
裝載完畢后,開始執(zhí)行onload函數(shù)。由于js執(zhí)行順序是順序執(zhí)行的,為提高頁(yè)面相應(yīng)速度,一般做法是在onload中只畫頁(yè)面,一些事件的綁定函數(shù),ajax方法等可延后書寫。
二、響應(yīng)速度分析
1.借助工具進(jìn)行分析
各大瀏覽器的開發(fā)者工具(最喜歡使用火狐)可以方便的查看各個(gè)js文件、html文件、css文件及圖片的裝載及執(zhí)行時(shí)間。
2.硬編碼分析
在第一步中我們基本能定位到瓶頸js文件了,在瓶頸js中,可以使用console.time('test')和console.Endtime('test')語(yǔ)句對(duì)js函數(shù)及代碼塊掐取執(zhí)行時(shí)間。不過(guò)console語(yǔ)句只在非IE瀏覽器中執(zhí)行有效,而在IE下會(huì)報(bào)錯(cuò)。如果你偏愛(ài)使用IE,那就使用時(shí)間戳吧。在掐取時(shí),比較方便的方法是,直接掐住整個(gè)js文件,然后使用火狐瀏覽器,按F12可以在控制臺(tái)中看到目標(biāo)js中所有函數(shù)及代碼塊的耗時(shí),即可定位到瓶頸代碼處。
相關(guān)文章
詳解微信小程序-canvas繪制文字實(shí)現(xiàn)自動(dòng)換行
這篇文章主要介紹了微信小程序canvas繪制文字實(shí)現(xiàn)自動(dòng)換行,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04
JS實(shí)現(xiàn)瀏覽器打印、打印預(yù)覽示例
本篇文章主要介紹了JS實(shí)現(xiàn)瀏覽器打印、打印預(yù)覽示例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-02-02
JCrop+ajaxUpload 圖像切割上傳的實(shí)例代碼
這篇文章主要介紹了JCrop+ajaxUpload 圖像切割上傳的實(shí)例代碼的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-07-07
學(xué)習(xí)RxJS之JavaScript框架Cycle.js
這篇文章主要介紹了學(xué)習(xí)RxJS之JavaScript框架Cycle.js ,它是一個(gè)極簡(jiǎn)的JavaScript框架(核心部分加上注釋125行),提供了一種函數(shù)式,響應(yīng)式的人機(jī)交互接口,需要的朋友可以參考下2019-06-06
JavaScript設(shè)置名字輸入不合法的實(shí)現(xiàn)方法
這篇文章主要介紹了JavaScript設(shè)置名字輸入不合法的方法,需要的朋友可以參考下2017-05-05

