浏览器内核又叫渲染引擎,主要负责HTML和CSS解析、页面布局、渲染和复合层合成。浏览器内核差异带来的主要问题是CSS支持和属性表现的差异。webkitWekbit是一个开源的网页浏览器引擎,是浏览器的内核。苹果的Safari、谷歌的Chrome、诺基亚S60平台的默认浏览器、苹果手机的默认浏览器、安卓手机的默认浏览器都使用Webkit作为浏览器内核。BlinkBlink是在Wekbit基础上的改进。现在对新特性支持最好的内核是微软的IE,IE4+的内核,一直延续到IE11,EdgeHTML是微软放弃IE后开发的新内核webkit。一些直接对应浏览器的概念的实现。例如WebView、WebPage、WebFrame等WebCore实现文档的建模,包括CSS、DOM、Render等的实现JavaScriptCore实现JavaScript支持浏览器内核和JS引擎列表JavaScript引擎JavaScript负责解释和处理处理JavaScript代码执行,主流的JavaScript引擎包括:V8、SpiderMonkey、JavaScriptCore、Chakra。页面渲染原理大致来说,一个页面的渲染会经过以下几个步骤:1.DOM树的构建(解析HTML)2.CSSOM树的构建(RecaculateStyle)为什么要Re-caculateStyle?这是因为浏览器本身有一个UserAgentStyleSheet,所以最终的样式被我们的样式代码样式和UserAgent默认样式覆盖/重新计算了。3.将DOM树和CSSOM树合并成Render树4.布局(Layout)5.绘制(Paint)6.复合分层(Composite)分层是我理解后对图像的意译。布局(Layout)链接主要负责计算各个元素的大小和位置,绘画(Paint)链接是绘制页面的像素信息,复合(Composite)链接是多个复合层的合成,用户看到的是最终的复合页面。当遇到JavaScript脚本或外部JavaScript代码时,浏览器会停止构建DOM(阻塞1)。是停止构建DOM,立即执行JavaScript代码,还是下载外部脚本执行,视情况而定,见2当遇到需要执行脚本代码的标签上面的CSS文件是否已经加载并用于构建CSSOM,如果上面还有CSS样式未加载的上面的样式加载完成,然后再执行
