浏览器线程

浏览器的线程

1. GUI渲染线程

2. 定时器线程

3. 事件监听线程

4. js引擎线程

5. http网络线程

GUI渲染线程的渲染流程

1. 生成DOM Tree

2. 生成 CSS Tree

3. 将DOM Tree和CSS Tree合并成 Render Tree

4. 根据Render Tree计算出每个元素在页面中的位置和从属关系,进行布局

5. 进行渲染显示

6. reflow(回流) 引起整体的布局改变(display,宽高)

7. repating(重绘) 颜色、visibility

异步加载

1. defer属性

2. async属性

区别:defer等待DOM树解析完成后才执行代码

    async只要js文件下载就立马执行

3. 按需加载 

JS引擎线程

        JS内核,也称JS引擎,负责处理执行javascript脚本。这是JS中的主线程,所以JS是单线程的编程语言,但是实际上JS属于单线程异步。异步是由子线程进行完成,主线程负责调度子线程。所以JS不严格的说也也属于多线程的编程语言

与GUI线程是互斥

GUI渲染线程

负责渲染浏览器界面,包括解析HTML、CSS、构建DOM树、Render树、布局与绘制等

当界面需要重绘(Repaint)或由于某种操作引发回流(reflow)时,该线程就会执行

与JS主线程互斥

事件监听线程

用来完成事件处理的,例如:click,mouseover...

计时器线程

负责处理定时器。setInterval和s

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值