• WebKit是一个渲染引擎,而不是一个浏览器;
  • DOM是对HTML或者XML等文档的一种结构化表示方法,通过这种方式,用户可以通过提供标准的接口来访问页面中的任何元素的相关属性,并可对DOM进行相应的添加、删除和更新操作等;
  • 基于DOM树的一些可视的节点,WebKit来根据需要来创建相应的RenderObject节点,这些节点也构成了Render树;
  • 基于Render树,WebKit也会根据需要来为它们中的某些节点创建新的RenderLayer节点, 从而形成RenderLayer树;
  • WebKit的布局计算和浏览器的渲染,GPU硬件加速都依赖Render树和RenderLayer树;

Render树

Render树的建立

  • Render树节点和DOM树节点不是一一对应关系;下面情况下需要建立新的Render节点:

    • DOM树的document节点;
    • DOM树中的可视化节点,如HTML,BODY,DIV等;
    • 某些情况下需要建立匿名的Render节点,该节点不对应于DOM树中的任何节点;
  • Render树建立后,布局运算会计算出相关的属性;其中有位置,大小,是否浮动等;渲染引擎利用这些信息绘制这些元素;

RenderObject类及其子类

  • RenderObjectRender树的节点基础类,提供了一组公共的接口;它在DOM树创建或DOM中有动态加入元素时创建;
  • 它有很多的子类,这些子类可能对应一些DOM 树中的节点,如RenderText,有些则是容器类,如RenderBlock;

匿名RenderBlock对象

  • CSS中有块级元素和内嵌元素之分;RenderBlock用来表示块级元素,;
  • 为了处理上的方便,某些情况下需要建立匿名的RenderBlock对象;因为RenderBlock的子女必须都是内嵌的元素或都是非内嵌的元素;所以,当它包

    浏览器-03 WebKit 渲染1的更多相关文章

    1. 浏览器-04 WebKit 渲染2

      渲染主循环(main loop)和requestAnimationFrame requestAnimationFrame 使用requestAnimationFrame而非setTimeout/set ...

    2. WebKit 渲染过程

      webkit笔记,主要来自 朱永盛 <WebKit技术内幕> 学习笔记,转载就注明原著,该书是国内仅有的Webkit内核的书籍,学习的好导师,推荐有兴趣的朋友可以购买 Webkit渲染过程 ...

    3. 浏览器的 16ms 渲染帧

      标签 归档 关于arttle Land 浏览器的 16ms 渲染帧 DOM JavaScript 异步 性能 重绘 由于现在广泛使用的屏幕都有固定的刷新率(比如最新的一般在 60Hz), 在两次硬件刷 ...

    4. 浏览器的 16ms 渲染帧--摘抄

      由于现在广泛使用的屏幕都有固定的刷新率(比如最新的一般在 60Hz), 在两次硬件刷新之间浏览器进行两次重绘是没有意义的只会消耗性能. 浏览器会利用这个间隔 16ms(1000ms/60)适当地对绘制 ...

    5. 聊聊浏览器(webkit)资源加载机制

      一些准备 在开始这个话题之前,我们有必要简单回顾一下 浏览器(webkit)的网页渲染过程(如果想要详细了解这个过程,可以戳我几年前写的一篇文章.): 我们知道,浏览器在渲染过程中,如遇到节点需要依赖 ...

    6. document.compatMode(判断当前浏览器采用的渲染方式)

      转载自:http://www.cnblogs.com/fullhouse/archive/2012/01/17/2324706.html IE对盒模型的渲染在 Standards Mode和Quirk ...

    7. 【repost】浏览器内核、渲染引擎、js引擎

      [1]定义 浏览器内核分成两部分渲染引擎和js引擎,由于js引擎越来越独立,内核就倾向于只指渲染引擎 渲染引擎是一种对HTML文档进行解析并将其显示在页面上的工具[2]常见引擎 渲染引擎: firef ...

    8. 浏览器内核、渲染引擎、js引擎

      [1]定义 浏览器内核分成两部分渲染引擎和js引擎,由于js引擎越来越独立,内核就倾向于只指渲染引擎 渲染引擎是一种对HTML文档进行解析并将其显示在页面上的工具 [2]常见引擎 渲染引擎: fire ...

    9. 【转】浏览器内核、渲染引擎、js引擎

      [1]定义 浏览器内核分成两部分渲染引擎和js引擎,由于js引擎越来越独立,内核就倾向于只指渲染引擎 渲染引擎是一种对HTML文档进行解析并将其显示在页面上的工具[2]常见引擎 渲染引擎: firef ...

    随机推荐

    1. 平面内,线与线 两条线找交点 两条线段的位置关系(相交)判定与交点求解 C#

      个人亲自编写.测试,可以正常使用   道理看原文,这里不多说   网上找到的几篇基本都不能用的   C#代码 bool Equal(float f1, float f2) { return (Math ...

    2. context元素大概解说

      Context元素代表一个web应用,运行在某个特定的虚拟主机上.如Servlet Specification 2.2或以后版本中描述的那样,每个web应用基于一个Web Application Ar ...

    3. Python 读写文件中数据

      1 需求 在文件 h264.txt 中的数据如图1,读入该文件中的数据,然后将第1列的地址删除,然后将数据输出到h264_out.txt中: 图1 h264.txt 数据截图             ...

    4. SearchLookUpEdit

      参考资料: 慧都控件网-DevExpress开发资源 在GridControl控件中使用SearchLookUpEdit构建数据快速输入

    5. 你想的到想不到的 javascript 应用小技巧方法

      javascript 在前端应用体验小技巧继续积累. 事件源对象 event.srcElement.tagName event.srcElement.type 捕获释放 event.srcElemen ...

    6. Jquery实现花瓣随机飘落(收藏自慕课网)

      这个东西实际上慕课的艾伦大大先写的. 然后别人推荐给我,偶一直收藏着,然后偶再推荐给偶的队友们,然后呢,这帮货就懒得都不肯去看... 接着今天受伤在家就提出来了一点东西放在我博客顶上... 然后艾伦的 ...

    7. LNMP环境搭建笔记

      说明:前面尝试的在ubuntu12.04上搭建的LAMP环境由于开发的需要需要对php的版本进行升级,然而通过apt-get库安装的php的版本是5.3.10,不能满足开发需要.此笔记安装的php的 ...

    8. mysql遇到锁表常用命令

      出现 waiting for table metadata lock 锁表的解决方法 1. show processlist; kill xxx; //xxx 为会话id 2.查询是否有未提交的事物 ...

    9. webview滑动事件 与内部html左右滑动事件冲突问题的解决办法

      最近在做个混合app , 用html做页面,然后通过webview嵌套在activity中,效果是这样: 开始还是比较顺利,增加了菜单退出按钮,返回键页面回退功能,页面加载显示加载图标(在app端实现 ...

    10. 安装配置LDAP遇到的问题

      问题1:安装完启动ldap服务报错: ldap: unrecognized service? 原因在于新版的openldap将服务名改为了slapd,使用service slapd start即可启动 ...