• 浏览器面试题


    一.浏览器的组成

    1.常见的浏览器内核有哪些?

    浏览器的内核分成两部分:
    渲染引擎JS引擎(⚠️注意:我们常说的浏览器内核就是指JS引擎)

    FireFox 和 Chrome 使用不同的渲染引擎和 JavaScript 引擎:

    1. FireFox:

      • 渲染引擎: Gecko
      • JavaScript 引擎: SpiderMonkey
    2. Chrome (以及大多数基于Chromium的浏览器,如新的Microsoft Edge):

      • 渲染引擎: Blink (注意:Blink是从WebKit分叉出来的,WebKit是早期Chrome和现在的Safari使用的渲染引擎)
      • JavaScript 引擎: V8

    2.浏览器的主要组成部分有哪些?

    浏览器是一个复杂的应用程序,其主要组件如下:

    1. 用户界面 (User Interface): 这部分包括地址栏、书签栏、前进/后退按钮、刷新按钮等。简而言之,除了您在浏览页面时看到的内容外,用户界面包括了其他所有部分。

    2. 浏览器引擎 (Browser Engine): 该模块在用户界面和渲染引擎之间起到中介的作用,传递命令。

    3. 渲染引擎 (Rendering Engine): 负责显示请求的内容。如果请求的是HTML内容,渲染引擎就负责解析HTML和CSS,并将解析后的内容显示在屏幕上。

    4. 网络 (Networking): 用于网络调用,例如HTTP请求。它负责发送查询和下载网页、图片、其他资源。

    5. JavaScript解释器 (JavaScript Engine): 解析和执行JavaScript来实现网页的动态功能。

    6. 数据存储 (Data Storage): 这是持久层。浏览器需要在本地存储各种数据,如cookies。HTML5引入了web storage,允许网页本地存储数据。

    在这里插入图片描述
    交互流程

    1. 当您在地址栏中输入URL并按下Enter时,用户界面指示浏览器引擎加载请求的网页。

    2. 浏览器引擎告知网络模块获取该URL的内容。

    3. 一旦网络模块完成下载网页的主要内容(通常是HTML文件),它将数据传递给渲染引擎

    4. 渲染引擎开始解析HTML,并在解析过程中遇到其他资源(如CSS文件、JavaScript文件或图片)时请求网络模块加载它们。

    5. 如果渲染引擎在解析HTML时遇到JavaScript,并且JavaScript没有被延迟或异步加载(deffer\async异步加载js),则渲染引擎暂停HTML解析并将控制权交给JavaScript引擎。一旦JavaScript引擎完成执行,控制权返回渲染引擎。

    6. DOM 构建: 当浏览器开始接收到HTML内容时,它会开始构建DOM(Document Object Model)。DOM是一个树形结构,表示页面的内容结构。DOM的构建是逐步的,也就是说,当浏览器接收到HTML内容的一部分时,它就开始构建DOM的这一部分。

    7. CSSOM 构建: 同时,当浏览器遇到外部CSS文件(通过标签)或内部样式(通过