美文网首页
浏览器的构成

浏览器的构成

作者: 一个人在路上走下去 | 来源:发表于2015-11-19 08:03 被阅读627次

浏览器在不断的演变中,并没有被要求呈现出一种特定的形态,但基本包括了如用户地址栏输入框、网络请求、浏览器文档解析、渲染引擎渲染网页、 JavaScript 引擎执行 js 脚本、客户端存储等功能。从原理构成上分为七个模块,分别是User Interface(用户界面)、Browser engine(浏览器引擎)、Rendering engine(渲染引擎)、Networking(网络)、JavaScript Interpreter(js解释器)、UI Backend(UI后端)、Date Persistence(数据持久化存储)。结构如下所示:

和大多数浏览器不同,Chrome 浏览器的每个标签页都分别对应一个渲染引擎实例。每个标签页都是一个独立的进程。

其中,最重要的是渲染引擎(内核)和JavaScript解释器(JavaScript引擎)。浏览器内核主要负责 HTML、CSS 的解析,页面布局、渲染与复合层合成,主流的内核有:Blink、Webkit、Gecko、EdgeHTML、Trident。JavaScript引擎负责 JavaScript 代码的解释与执行,主流的 JavaScript 引擎有:V8、SpiderMonkey、JavaScriptCore、Chakra。

当加载一个网页时,粗略的说会经过以下这些步骤:

DOM 树的构建(Parse HTML)

构建 CSSOM 树(Recaculate Style)

合并 DOM 树与 CSSOM 树为 Render 树

布局(Layout)

绘制(Paint)

复合图层化(Composite)

Recaculate Style 是因为浏览器本身有User Agent StyleSheet,最终的样式是我们的样式代码与用户代理默认样式覆盖/重新计算得到的。

当遇到 JavaScript 脚本或者外部 JavaScript 代码时,浏览器便停止 DOM 的构建(阻塞 1)。停下 DOM 构建的同时,继续执行 JavaScript 代码或者下载外部脚本执行,要视情况而定。

当遇到 <script> 标签需要执行脚本代码时,浏览器会检查这个 <script> 标签以上的 CSS 文件是否已经加载并用于构建了 CSSOM,如果 <script> 上部还有 CSS 样式没加载,则浏览器会等待 <script> 上方样式的加载完成才会执行该 <script> 内的脚本(阻塞 2)。标签需要执行脚本代码时,浏览器会检查是否这个标签以上的 CSS 文件是否已经加载并用于构建了 CSSOM,如果上部还有 CSS 样式没加载,则浏览器会等待上方样式的加载完成才会执行该内的脚本(阻塞 2)。

标签需要执行脚本代码时,浏览器会检查是否这个标签以上的 CSS 文件是否已经加载并用于构建了 CSSOM,如果上部还有 CSS 样式没加载,则浏览器会等待上方样式的加载完成才会执行该内的脚本(阻塞 3)。DOM 树与 CSSOM 树的成功构建是后面步骤的根基(同步阻塞)。同时外部脚本、外部样式表的下载也是耗费时间较多的点。

测试

HTML5性能测试

Acid测试

UA分析

扩展

What really happens when you navigate to a URL

相关文章

  • 浏览器的构成

    原理 原理构成上分为七个模块,分别是User Interface(用户界面)、Browser engine(浏览器...

  • 浏览器的构成

    浏览器在不断的演变中,并没有被要求呈现出一种特定的形态,但基本包括了如用户地址栏输入框、网络请求、浏览器文档解析、...

  • 浏览器的主要构成

    浏览器的主要组件包括: 用户界面 包括地址栏、后退/前进按钮、书签目录等,也就是你所看到的除了用来显示你所请求页面...

  • 浏览器工作原理

    目录一、前言二、工作流程概况三、从大致功能上,谈浏览器构成四、渲染流程(宏观)五、从进程、线程的角度,谈浏览器构成...

  • HTML/HTML5 知识点思维导图

    HTML 1 - 浏览器 | 浏览器页面构成 2 - 浏览器 | 浏览器内核相关知识点 3 - W3C | 对WE...

  • CSS备注

    一、浏览器构成 User Interface:用户界面,包括浏览器中可见的地址输入框、浏览器前进返回按钮、书签,历...

  • CSS 之渲染原理及优化策略

    1.浏览器的构成 User Interface: 用户界面,包括浏览器中可见的地址输入框、浏览器前进返回按钮、书签...

  • JS基础知识储备(DOM与BOM)

    一、背景 1、浏览器组成 JAVAScript 有三部分构成,ECMAScript,DOM和BOM,根据浏览器的不...

  • 从输入URL到页面展示,这中间发生了什么?

    1,用户输入url并回车2,浏览器进程检查url,组装协议,构成完整的url3,浏览器进程通过进程间通信(IPC)...

  • 从输入url到页面渲染成功,这其中发生了什么?

    1 用户输入url并回车 2 浏览器进程检查url,组装协议,构成完整的url 3 浏览器进程通过进程间通信IP...

网友评论

      本文标题:浏览器的构成

      本文链接:https://www.haomeiwen.com/subject/irdlhttx.html