西西河

主题:【原创】新时代新潮流WebOS 【1】 -- 邓侃

共:💬594 🌺1902 新:
全看分页树展 · 主题 跟帖
家园 英雄所见略同

Layout 过程假设每个RenderTree 的节点都对应一个长方形逻辑区域。这是一个形式和内容的问题。layout解决的,是内容问题。如果仔细看你的第二个图的话,里面的那些字,也是在一个个长方形里面的,不同于图1的,是在显示方式(形式)上的不同。所以,这个问题,似乎应该由paint来处理:

用layout来确定文档中各个元素的三维位置,然后由paint来解决具体的呈现方式。设想一下用浏览器来看VRML的情形...

一语点醒梦中人,Layout不应该受限于2D,而应该从3D考虑。在Paint的时候,无非是把3D实物,投影到2D。

这样,建3D RenderTree容易,2D Rendering也容易。

主要是layout的执行次数少,仅在page load和js修改innerHTML的时候才需要执行,所以虽然计算量大,但是算好以后就可以使用多次。

刚开始我们也是这么认为的,但是实地跟踪一下以后,发现layout经常被调用。具体哪些事件触发了layout,我们也不是非常清楚。或许用户鼠标在浏览器上滑动的时候,Webkit误以为是在改变浏览器视窗大小吧。

全看分页树展 · 主题 跟帖


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河