欧美日韩一卡二卡三卡,一区二区三区四区精品视频,亚洲精品视频一区,日韩久久午夜影院

關于reflow
時間:2007年09月18日 內容來源: 互諾科技 瀏覽量:0

去聽了牛人 dbaron 的一個 Web Page Layout/Display in Mozilla 講座( via )。講的東西對我一個只會HTML, CSS和JavaScript的人來說很底層,所以效果也比較“和諧”,只是大致了解了mozilla的CSS渲染源碼分布位置和渲染流程而已。

講座提到了reflow(如何翻譯呢?又是一個問題)這個東東。之前對reflow有所聞,能經常從某些大牛的幻燈中提到,提高頁面渲染的性能,需盡量避免reflow. 那么reflow是什么東西呢?它又是如何影響頁面性能的?事后去問了一下dbaron(呵呵,我口語徹底不行,加上心理素質,最后是把問題寫下來給他看),豁然開朗也。

在CSS規范中有一個渲染對象的概念,通常用一個盒子(box, rectangle)來表示。mozilla通過一個叫frame的對象對盒子進行操作。frame主要的動作有三個:

  • 構造frame, 以建立對象樹(DOM樹)
  • reflow, 以確定對象位置,或者是調用mozilla的Layout(這里是指源碼的實現)
  • 繪制,以便對象能顯示在屏幕上

總的來說,reflow就是載入內容樹(在HTML中就是DOM樹)和創建或更新frame結構的響應的一種過程。

要提高頁面性能,其實就是避免reflow的開銷。那么,有哪些方面是需要reflow的呢?比如,未指定圖片寬高的話,圖片的載入會使頁面reflow, 因為要根據圖片寬高來更新frame。這里就有一個提高頁面性能的小技巧:如果事先能夠確定圖片寬高的話,最好在HTML里寫上。

在編寫一些常見的動態效果時,一般使用CSS的display來切換可見性。很不幸,這也會產生reflow. 把元素置為display:none,相當于把這個元素的frame銷毀了,再置回非none時,需要重新構造frame,這就產生了reflow. 而另外一個切換可見性的屬性visibility則不存在reflow問題,置為visibility:hidden的元素的frame并沒有銷毀,需要顯示的時候其實就是一個繪制(上面提到的動作第三步)過程而已,沒有reflow,因此效率會更高。如果你看過一些JavaScript庫/框架的源碼,會發現它們大量使用visibility而不是display,道理應該如此。

 
 
欧美日韩一卡二卡三卡,一区二区三区四区精品视频,亚洲精品视频一区,日韩久久午夜影院
主站蜘蛛池模板: 精品日韩一区二区三区| 久久久精品蜜桃| 成人aaaa| 欧美性xxxxx极品| sdde在线播放一区二区| 精品一区电影| 日韩一本精品| 久久久综合激的五月天| 欧美高清视频在线| 久久久久这里只有精品| 亚洲视频免费| 欧美男gay| 精品久久久久久最新网址| 欧美限制电影| 久久精品国产亚洲aⅴ| 国产精品99久久久| 亚洲精品720p| 国产精品一在线观看| 国产综合久久久久久久久久久久| 欧美老女人另类| 爽成人777777婷婷| 亚洲第一精品电影| 国产精品天天看| 日韩理论电影| 91精品欧美一区二区三区综合在| 尤物精品在线| 欧美精选一区二区三区| 久久夜色精品国产欧美乱极品| 午夜婷婷国产麻豆精品| 中文字幕国产亚洲2019| 国产一区二区三区自拍| 久久国产精品成人免费观看的软件 | 中文字幕不卡三区| 国产精品视频免费| 日韩中文首页| 亚洲高清免费视频| 精品国产午夜| 99久久久国产精品| 国产成人精品一区二| 日韩一区在线播放| 在线播放国产精品|