输入网址时:
输入网址 dns解析 找到ip地址 服务器会返回给浏览器一个index.html文件 浏览器在解析的过程中遇到css就会去服务器中下载 遇到js也会去对应的服务器中下载
浏览器内核:浏览器的内核是指浏览器用来解析和渲染网页的核心组件。
不同的浏览器有不同的内核组成。
内核 | 浏览器 |
gecko | Firefox |
trident | IE |
webkit | safari、chrome |
blink(webkit的一个分支,google开发) | chrome、edge、opera |
浏览器渲染过程
js如何在浏览器里执行的?
js是一门高级的汇编语言,无论在Node环境还是在浏览器下,高级语言都需要通过js引擎将其转换成机器码或者字节码才能被计算机识别。js引擎是浏览器内核(浏览器引擎)的一个关键组成部分,是专门负责解析和执行js代码的
浏览器内核包含渲染引擎和js引擎,其中:
渲染引擎:负责html解析,布局以及渲染的工作
js引擎:解析、执行js
V8引擎的原理
parse阶段:
首先会进行词法分析,将源代码文本拆分成一个个的词法单元,也称为令牌(Token),每个词法单元包含对应的类型和值。这个tokens会被传递到语法分析阶段进行下一步的处理。
比如var name = “yql”这段代码生成的tokens
接着会进行语法分析检查代码是否符合语法规范,会将词法分析出来的 Tokens 转化成有语法含义的抽象语法树(AST)结构。
Ignition:是一个解释器,会将AST转换成Bytecode(字节码),字节码还会转换成机器码,将最后的机器码给到CPU (是计算机系统中的核心组件)执行
TurboFan: V8 引擎使用了即时编译技术,TurboFan是一种即时编译器,它接收 Ignition 解释器生成的热点字节码,并将其转换为高效的机器码,以提高 JavaScript 代码的执行性能。(这部分也是v8性能好的原因之一)