学向勤中得,萤窗万卷书。这篇文章主要讲述浏览器渲染与内核相关的知识,希望能为你提供帮助。
浏览器渲染与内核浏览器内核可以分成两部分:渲染引擎与??JS?
??引擎。最开始渲染引擎与??JS?
??引擎并没有明确的区分,但随着??JS?
?引擎越来越独立,内核就越来越倾向于只指渲染引擎。
渲染过程【浏览器渲染与内核】不同浏览器内核的渲染方式不同,但整体流程基本一致:
- 自上而下,首先解析?
?html?
??标签,生成??DOM Tree?
?。 - 在解析到?
?< link> ?
??或者??< style> ?
??标签时,开始解析??CSS?
??,生成??CSSOM?
??,值的注意的是此时解析??HTML?
??标签与解析??CSS?
?是并行执行的。 - 当遇到?
?< script> ?
??标签后,浏览器会立即开始解析脚本,并停止解析文档,因为脚本有可能会改动??DOM?
??与??CSS?
??,继续解析会浪费资源,所以应当将??< script> ?
??标签放于??< body> < /body> ?
?后。 - 当?
?DOM Tree?
??与??CSSOM?
??生成后,将两者结合进行布局,计算它们的大小位置等布局信息,形成一个能够表示这所有信息的内部表示模型,可称为渲染树??render tree?
?。 - 根据计算好的信息绘制整个页面,系统会遍历渲染树,并调用?
?paint?
?方法,将内容显示在屏幕上。
当?
?render tree?
??中的一些元素需要更新属性,而这些属性只是影响元素的外观,风格,而不会影响布局的,比如??background-color?
?,则就叫称为重绘。回流
当?
?render tree?
??中的一部分(或全部)因为元素的规模尺寸,布局,隐藏等改变而需要重新构建。这就称为回流,也可以称为重新布局。每个页面至少需要一次回流,就是在页面第一次加载的时候,这时候是一定会发生回流的,因为要构建??render tree?
?。内核
- ?
?IE?
??浏览器:??Trident?
??内核,也是俗称的??IE?
?内核。 - ?
?Chrome?
??浏览器:统称为??Chromium?
??内核或??Chrome?
??内核,以前是??Webkit?
??内核,现在是??Blink?
?内核。 - ?
?Firefox?
??浏览器:??Gecko?
??内核,俗称??Firefox?
?内核。 - ?
?Safari?
??浏览器:??Webkit?
?内核。 - ?
?Opera?
??浏览器:最初是自己的??Presto?
??内核,后来是??Webkit?
??,现在是??Blink?
?内核。
?JS?
??引擎的作用比较统一,在浏览器的实现中必须含有??DOM?
??(文档对象模型,是??W3C?
??组织推荐的处理??XML?
??的标准编程接口)和??BOM?
??(浏览器对象模型,提供了独立于内容而与浏览器窗口进行交互的对象,例如??window?
??对象)。浏览器一般使用公共??API?
??来创建对象来负责将??DOM?
??对象反射进??javascript?
??。??JS?
??引擎负责对??javaScript?
?进行解释、编译和执行,以使网页达到一些动态的效果。引擎
- ?
?Chrome?
??浏览器:??V8?
?引擎。 - ?
?Safari?
??浏览器:??JavaScriptCore?
?引擎。 - ?
?Firefox?
??浏览器:??TraceMonkey?
?引擎。 - ?
?Opera?
??浏览器:??Carakan?
?引擎。 - ?
?IE3~IE8?
??浏览器:??JScript?
?引擎。 - ?
?Edge?
??浏览器:??Chakra?
?引擎。
https://github.com/WindrunnerMax/EveryDay
参考
https://imweb.io/topic/56841c864c44bcc56092e3fa
推荐阅读
- 浏览器重绘与回流
- Promise对象
- Js中fetch方法
- HTTP协议发展历程
- Azure Virtual Desktop 快速上手--托管网络快速创建P2S连接用于测试
- windows配置jdk环境变量mysql环境变量tomcat环境变量maven环境变量git环境变量node环境变量
- springboot 文件上传和下载
- Java对象转换与mapstruct实践
- springboot 全局异常捕获