浏览器内核

来源:互联网 发布:钩尖江湖直销淘宝店 编辑:程序博客网 时间:2024/06/07 01:39

一、各大主流浏览器的内核:

1、IE : Trident内核(众所周知的低版本兼容性问题)。
2、FF : Gecho内核,c++编写,开源,可开发程度很高。
3、Opera : Presto内核,由opera software开发的浏览器排版引擎,在opear7~10中使用,特点是渲染速度的优化达到了极致,是公认的网页浏览速度最快的浏览器内核,然后代价是牺牲了网页的兼容性。本质上是一个动态内核,与Trident、Gecko等内核的最大区别就在于脚本处理上,Presto有着天生的优势,页面的全部或者部分都能够在回应脚本事件时等情况下被重新解析。此外该内核在执行JavaScript时有着最快的速度,根据同等条件下的测试,Presto内核执行同等JavaScript所需的时间仅有Trident和Gecko内核的约1/3。
4、Chrome(当下的Opera):Blink内核,基于webkit。
5、Safari:webkit内核。

二、内核的渲染引擎和js引擎
最开始渲染引擎和js引擎并没有区别的很明确,后来js引擎越来越独立(像V8),内核就倾向于只指渲染引擎。

渲染引擎的作用:    负责对网页语法的解释并渲染网页    过程分为四步:解析html以构建dom树 -> 构建render树 -> 布局render树 -> 绘制render树    解析dom树开始后,渲染引擎开始解析html结构,将标签转化为内容树中的dom节点,如果在head中有外链的css样式或者js脚本文件,浏览器会开启一个线程去加载这些文件,加载的过程中不影响页面的继续渲染,这里要注意,首先浏览器一般可以同时进行6个文件的加载(chrome、ff等),老的ie只有两个;其次,加载过程中是不造成阻塞额,也可以理解为是异步的,但是加载完成后解析的时候,就会造成页面的阻塞,这时候不管是css还是js都要等待解析完成,才继续html的解析。然后就是将外链的css样式和style中的样式信息与dom结构组合起来,构建render树。render树由一些有颜色和大小的矩形组成,他们将按照正确的顺序显示到屏幕。    render树构建好了以后就会执行布局过程,会确定每个节点在屏幕上的坐标。    再下一步就是绘制,也就是遍历render树,然后用ui层绘制每个节点。

这里有两个点需要注意:

1、这个过程是逐步完成的,为了更好的用户体验,渲染引擎将会尽可能早的将内容呈现到屏幕上,并不会等到所有的html都解析完成之后再去构建和布局render树。它是解析完一部分内容就显示一部分内容,同时,可能还在通过网络下载其余内容。

2、就是html中可能会存在一定的可见性指令,类似于 onclick 这些事件,这时候情况比较复杂一点,可能需要渲染引擎与js引擎进行一定的数据共享。

JS引擎的作用:    负责对JavaScript进行解释、编译和执行,以使网页达到一些动态的效果。
原创粉丝点击