最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳解瀏覽器渲染頁面過程

 更新時(shí)間:2017年02月09日 09:11:39   投稿:lqh  
這篇文章主要介紹了詳解瀏覽器渲染頁面過程的相關(guān)資料,需要的朋友可以參考下

詳解瀏覽器渲染頁面過程

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é)點(diǎn)需要更新,但不改變其他集合形狀。如改變某個(gè)元素的顏色,就會發(fā)生重繪。 

附:

1.重繪和重排何時(shí)會發(fā)生:

(1)增加或刪除DOM節(jié)點(diǎn);
(2)display:none(重排并重繪);visibility:hidden(重排);
(3)移動頁面中的元素;
(4)增加或修改樣式;
(5)用戶改變窗口大小,滾動頁面等。

2.如何減少重繪和重排以提升頁面性能:

(1)不要一個(gè)個(gè)修改屬性,應(yīng)通過一個(gè)class來修改

錯(cuò)誤寫法:div.style.width="50px";div.style.top="60px";
正確寫法:div.className+=" modify";

(2)clone節(jié)點(diǎn),在副本中修改,然后直接替換當(dāng)前的節(jié)點(diǎn);
(3)若要頻繁獲取計(jì)算后的樣式,請暫存起來;
(4)降低受影響的節(jié)點(diǎn):在頁面頂部插入節(jié)點(diǎn)將影響后續(xù)所有節(jié)點(diǎn)。而絕對定位的元素改變會影響較少的元素;
(5)批量添加DOM:多個(gè)DOM插入或修改,應(yīng)組成一個(gè)長的字符串后一次性放入DOM。使用innerHTML永遠(yuǎn)比DOM操作快。(特別注意:innerHTML不會執(zhí)行字符串中的嵌入腳本,因此不會產(chǎn)生XSS漏洞)。

感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

相關(guān)文章

最新評論

新安县| 桐乡市| 商都县| 肇源县| 仁怀市| 许昌县| 永嘉县| 贵港市| 铁岭市| 左贡县| 新乡县| 赤水市| 乃东县| 拉萨市| 岳普湖县| 德昌县| 富裕县| 麻江县| 大同县| 钟祥市| 华亭县| 崇礼县| 克拉玛依市| 兴文县| 辰溪县| 白朗县| 定安县| 镇安县| 化隆| 铁岭市| 华阴市| 沙河市| 赤水市| 安义县| 武冈市| 江永县| 平果县| 长海县| 福泉市| 红原县| 赤峰市|