打开chrome
- 开启一个主进程
- 主进程会开启一些辅助进程,比如GPU进程,网络服务进程
- 每打开一个tab页,就会开启一个新子进程
浏览器的功能
- 发起请求,下载html,解析html,下载css,解析css,渲染界面,下载js,解析js,执行js。
- 功能模块:是
线程
单位- 用户界面
- 渲染引擎
- js引擎
- 存储(localstorage等)
JS引擎
- 单线程:改变页面的话,就要通过
dom操作
与渲染引擎
进行跨线程通信
,这就是dom操作慢
的原因 - chrome用的是v8引擎,也是nodejs的引擎,c++写的
- 主要功能:
- 编译:把js代码翻译为机器能执行的字节码或机器码
- 优化:改写代码,使其更高效
- 执行:执行上面的字节码或机器码
- 垃圾回收:把JS用完的内存回收,方便之后再次使用
注意点
-
window/document/navigator/setTimeout
这些都不是js的功能,是浏览器提供给js的api - 我们把这些功能称为运行时环境
runtime env
- 一旦把js放进页面,就开始执行js
深入
- 那么js放在哪里执行呢:
内存里
- 存在内存哪里呢:
-
stack栈区
:每个数据顺序
存放:存放普通变量
或对象的地址
-
heap堆区
:每个数据随机
存放,为了方便拓展:存放对象
-
网友评论