詳解瀏覽器渲染頁面過程
1.解析HTML文件,創(chuàng)建DOM樹
自上而下,遇到任何樣式(link、style)與腳本(script)都會阻塞(外部樣式不阻塞后續(xù)外部腳本的加載)。
2.解析CSS
優(yōu)先級:瀏覽器默認(rèn)設(shè)置<用戶設(shè)置<外部樣式<內(nèi)聯(lián)樣式<HTML中的style樣式;
特定級:id數(shù)*100+類或偽類數(shù)*10+tag名稱*1
3.將CSS與DOM合并,構(gòu)建渲染樹(renderingtree)
DOM樹與HTML一一對應(yīng),渲染樹會忽略諸如head、display:none的元素
4.布局和繪制,重繪(repaint)和重排(reflow)
重排:若渲染樹的一部分更新,且尺寸變化,就會發(fā)生重排;
重繪:部分節(jié)點需要更新,但不改變其他集合形狀。如改變某個元素的顏色,就會發(fā)生重繪。
附:
1.重繪和重排何時會發(fā)生:
(1)增加或刪除DOM節(jié)點;
(2)display:none(重排并重繪);visibility:hidden(重排);
(3)移動頁面中的元素;
(4)增加或修改樣式;
(5)用戶改變窗口大小,滾動頁面等。
2.如何減少重繪和重排以提升頁面性能:
(1)不要一個個修改屬性,應(yīng)通過一個class來修改
錯誤寫法:div.style.width="50px";div.style.top="60px";
正確寫法:div.className+=" modify";
(2)clone節(jié)點,在副本中修改,然后直接替換當(dāng)前的節(jié)點;
(3)若要頻繁獲取計算后的樣式,請暫存起來;
(4)降低受影響的節(jié)點:在頁面頂部插入節(jié)點將影響后續(xù)所有節(jié)點。而絕對定位的元素改變會影響較少的元素;
(5)批量添加DOM:多個DOM插入或修改,應(yīng)組成一個長的字符串后一次性放入DOM。使用innerHTML永遠(yuǎn)比DOM操作快。(特別注意:innerHTML不會執(zhí)行字符串中的嵌入腳本,因此不會產(chǎn)生XSS漏洞)。
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)建站chinadenli.net,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
標(biāo)題名稱:詳解瀏覽器渲染頁面過程-創(chuàng)新互聯(lián)
本文來源:http://chinadenli.net/article28/dhjpcp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供App開發(fā)、域名注冊、微信公眾號、移動網(wǎng)站建設(shè)、自適應(yīng)網(wǎng)站、微信小程序
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容