浏览器运行原理

您所在的位置:网站首页 浏览器的运行原理 浏览器运行原理

浏览器运行原理

2024-03-01 03:59| 来源: 网络整理| 查看: 265

浏览器的内核

首先我们来认识一下浏览器的内核,百度百科上是这样对浏览器内核定义的:

浏览器内核是指浏览器最核心的部分,负责对网页语法的解释(如标准通用标记语言下的一个应用HTML、JavaScript)并渲染(显示)网页。 所以,通常所谓的浏览器内核也就是浏览器所采用的渲染引擎,渲染引擎决定了浏览器如何显示网页的内容以及页面的格式信息。不同的浏览器内核对网页编写语法的解释也有不同,让我们来了解一下有哪些常见的浏览器内核:

Gecko:早期被Netscape和Mozilla Firefox浏览器浏览器使用。 Trident:微软开发,被IE4~IE11浏览器使用,但是Edge浏览器已经转向Blink。 Webkit:苹果基于KHTML开发、开源的,用于Safari,Google Chrome之前也在使用。 Blink:是Webkit的一个分支,Google开发,目前应用于Google Chrome、Edge、Opera等。 浏览器渲染过程

截屏2022-04-18 19.26.04.png 如上图时浏览器的渲染过程,首先将HTML由HTML Parser渲染成DOM Tree,同时CSS也会由CSS Parser去渲染成Style Rules,随后他们会渲染成Render Tree并经过Layout(排版引擎)重新加载(此处的Layout的作用比如说如果浏览器窗口大小改变了,那么之前的定位之类的元素就需要使用Layout来重新定位),最终才会渲染成页面展示给用户。如果在上图的执行过程中遇到了Javascript代码会怎么办呢?答案是会停止解析HTML和CSS代码,而去加载和执行Javascript代码。

认识Javascript引擎

所有的高级语言最终都是需要转成机器指令来执行的,事实上无论Javascript代码交给浏览器执行也好node执行也好,最后都是需要被CPU来执行,但是CPU只认识机器语言,那么Javascript引擎的作用就是将Javascript代码转换为机器语言给CPU执行。 比较常见的Javascript引擎有哪些呢?

SpiderMonkey:第一款JavaScript引擎,由Brendan Eich开发(也就是JavaScript作者) Chakra:微软开发,用于IE浏览器 JavaScriptCore:WebKit中的JavaScript引擎,Apple公司开发 V8:Google开发的强大JavaScript引擎,也帮助Chrome从众多浏览器中脱颖而出 浏览器内核和JS引擎的关系

以WebKit为例,它是由两部分组成的:

WebCore:负责HTML解析、布局、渲染等等相关的工作 JavaScriptCore:解析、执行JavaScript代码 微信小程序就是使用的就是JavascriptCore(JSCore)作为Javascript的解析器 V8引擎 V8引擎的原理

官网对于V8引擎是这样定义的: V8是一个由Google开源的采用 C++ 编写的高性能JavaScript和WebAssembly引擎,应用在 Chrome和Node.js等中。 它实现了ECMAScript和WebAssembly,运行在Windows 7及以上、macOS 10.12+以及使用x64、IA-32、ARM或MIPS处理器的Linux系统上。 V8可以独立运行,也可以嵌入到任何 C++ 应用程序中。

V8引擎的具体执行过程 进行Parser (词法分析,语法分析) 成抽象AST树 AST通过Ignition(理解成解释器或者转化器)生成 bytecode(字节码),js实现跨平台的关键点 最后根据运行环境,自动将字节码转成对应的汇编代码->机器码,由CPU执行

截屏2022-04-18 21.07.18.png



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3