渲染機(jī)制
? ? ? ? css==cssom + html==dom tree=render tree 遇到j(luò)s時(shí)候修改dom,css時(shí)候會(huì)reflow(重排),repaint(眾繪)
?js運(yùn)行機(jī)制:
????????有同步任務(wù)和異步任務(wù)喂急,
? ? ? ? 由于js是單線程谨履,執(zhí)行完一件在執(zhí)行另一件
? ? ? ? 默認(rèn)是先執(zhí)行完所有的同步任務(wù)在執(zhí)行異步任務(wù),
? ? ? ? console.log('a');
? ? ? ? setInterval(function(){console.log(2)},0);
? ? ? ? while(1){}
? ? ? ? 只會(huì)輸出a
? ? ? ? 異步執(zhí)行時(shí)間奏窑,什么時(shí)間將異步任務(wù)放入到異步任務(wù)中(執(zhí)行完同步后)
? ? ? ? for(var i = 0; i<4;i++){
? ? ? ? ? ? setTimeout(function(){
? ? ? ? ? ? ? ? console.log(i)
? ? ? ? ? ? },1000)
? ? ? ? }
? ?頁(yè)面性能
? ? ? ? 2.1靜態(tài)資源壓縮导披,減少http請(qǐng)求?
? ? ? ? 2.2異步加載,1動(dòng)態(tài)創(chuàng)建節(jié)點(diǎn)? 2 script的defer 按順序執(zhí)行 3 script的async 都需要配合src,加載完頁(yè)面后立即執(zhí)行
? ? ? ? 不考慮js依賴(lài)
? ? ? ? 2.3利用DNS,將需要加載的服務(wù)器地址移到就近地址
? ?錯(cuò)誤監(jiān)控
? ? ? ? 3.1錯(cuò)誤類(lèi)型埃唯,運(yùn)行錯(cuò)誤撩匕,代碼編寫(xiě)錯(cuò)誤 解決方法 try{}catch{} window.onerror
? ? ? ? 3.2資源加載錯(cuò)誤? ? ? ? ? ? ? ? ? 解決方法:object.onerror