什么是repaint和reflow?
2012/3/16 10:41:31
一個頁面由兩部分組成:
DOM:描述該頁面的結(jié)構(gòu)
render:描述DOM節(jié)點(nodes)在頁面上如何呈現(xiàn)
當(dāng)DOM元素的屬性發(fā)生變化(如color)時,瀏覽器會通知render重新描繪相應(yīng)的元素,此過程稱為repaint。如果該次變化涉及元素布局(如width),瀏覽器則拋棄原有屬性,重新計算并把結(jié)果傳遞給render以重新描繪頁面元素,此過程稱為reflow。這兩個過程是很耗費瀏覽器性能的,從IE系列和Chrome渲染頁面速度上的差距即可看出渲染引擎計算對應(yīng)值和呈現(xiàn)并不一定高效,而每次對元素的操作都會發(fā)生repaints或reflow,因此編寫DOM交互時如果不注意就會導(dǎo)致頁面性能低下.
頁面渲染的過程如下:
1.解析HTML代碼并生成一個DOM樹。
2.解析CSS文件,順序為:瀏覽器默認樣式->自定義樣式->頁面內(nèi)的樣式。
3.生成一個渲染樹(rendertree)。這個渲染樹和DOM樹的不同之處在于,它是受樣式影響的。它不包括那些不可見的節(jié)點。
4.當(dāng)渲染樹生成之后,瀏覽器就會在屏幕上“畫”出所有渲染樹中的節(jié)點。
2.什么情況下會觸發(fā)瀏覽器的repaint/reflow?
除了頁面在首次加載時必然要經(jīng)歷該過程之外,還有以下行為會觸發(fā)這個行為:
1.DOM元素的添加、修改(內(nèi)容)、刪除(Reflow+Repaint)
2.僅修改DOM元素的字體顏色(只有Repaint,因為不需要調(diào)整布局)
3.應(yīng)用新的樣式或者修改任何影響元素外觀的屬性
4.Resize瀏覽器窗口、滾動頁面
5.讀取元素的某些屬性
返回列表
返回首頁
主站蜘蛛池模板:
亚洲欧美日韩网站|
国产午夜无码片在线观看|
一二三四社区在线高清观看在线|
日本高清不卡在线观看|
亚洲另类自拍丝袜第五页|
神秘电影欧美草草影院麻豆第一页|
国产二级一片内射视频播放|
亚洲最大激情中文字幕|
国精品在亚洲_欧美|
一个人hd高清在线观看|
扒开双腿疯狂进出爽爽爽动态图
|
国产欧美日韩综合精品二区|
91精品国产高清91久久久久久|
女警骆冰被黑人调教免费阅读小说|
中文字幕在线视频播放|
日本精品视频在线观看|
亚欧免费视频一区二区三区|
欧美性色欧美a在线播放|
亚洲精品在线网站|
男生和女生一起差差差差|
卡一卡二卡三免费专区2|
蜜桃97爱成人|
国产卡一卡二卡三卡四|
精品一久久香蕉国产二月|
国产精品无码免费播放|
97人人模人人爽人人少妇|
天堂网www在线资源|
一区二区三区高清在线|
成人小视频在线观看免费|
久久99热只有频精品8|
日本精品啪啪一区二区三区|
久久青青草视频|
欧洲成人r片在线观看|
亚洲国产欧美国产第一区二区三区
|
久久国产色AV免费观看|
日韩美女va毛片在线播放|
亚洲一区二区三区无码国产|
欧美性生交xxxxx丝袜|
亚洲欧美日韩中文无线码|
涩涩涩在线视频|
亚洲自拍欧美综合|