監(jiān)控js傳輸
1 .1MB的js在不同的設(shè)備上需要的解析時(shí)間是不同的麻车。分析解析和編譯時(shí)間缀皱,對(duì)于理解應(yīng)用程序什么時(shí)候做好交互準(zhǔn)備至關(guān)重要,這些時(shí)間因用戶的設(shè)備的硬件能力而異动猬,高端的設(shè)備解析和編譯的時(shí)間很容易在低端手機(jī)上高出2-5倍
2 .實(shí)施代碼分割:如果有可能啤斗,只提供用戶需要的資源。webpack.
3 .頁面通用功能(焦點(diǎn)圖赁咙,圖片滾動(dòng)钮莲,文字滾動(dòng)),使用靜態(tài)域名下全站統(tǒng)一的js文件
4 .任何js功能要求都可以做到延遲加載彼水,避免阻塞頁面
5 .超過10k的js代碼使用外聯(lián)文件
6 .不要再首頁崔拥,頻道首頁,底層頁引用體積龐大的外部文件
7 .公共產(chǎn)品聽過的接口js代碼應(yīng)該注意封裝好自己的命名空間
8 .公共平臺(tái)使用規(guī)范:頁面服務(wù)器只存放文本文件凤覆,不存放圖片等媒體文件链瓦。素材服務(wù)器上存放素材文件:包括素材圖片,css文件叛赚,JS文件澡绩,mp3,flash文件俺附。圖片服務(wù)器集群主要存放內(nèi)容圖片。
9 .開發(fā)智能事件處理程序:就是事件代理啊.叫的倒是停高端的
10 .通過js預(yù)加載圖片:在空閑的時(shí)候溪掀,通過js創(chuàng)建一個(gè)不在視野內(nèi)的圖片標(biāo)簽事镣,使瀏覽器去加載相應(yīng)的圖片并緩存起來
11 .代碼執(zhí)行優(yōu)化
dom操作優(yōu)化
算法優(yōu)化
1 .避免使用for in循環(huán),除非遍歷數(shù)量未知的對(duì)象揪胃。因?yàn)樗麜?huì)同時(shí)遍歷原型屬性
2 .循環(huán)中減少循環(huán)次數(shù)以及每次循環(huán)的運(yùn)算步驟
3 .if -else:條件數(shù)較少的時(shí)候用這個(gè)璃哟,switch:條件多的時(shí)候使用
4 .盡量使用循環(huán)替代遞歸,瀏覽器一般都有最大遞歸次數(shù)限制
5 .使用更好的數(shù)據(jù)結(jié)構(gòu)
6 .控制原型鏈的深度喊递,減少對(duì)象的嵌套
7 .