浏览器线程总结
GUI渲染线程
- 负责渲染浏览器页面,解析html,css,布局和绘制等
- 当页面需要重绘/回流时,该线程就会执行
- GUI渲染线程和JS引擎线程是互斥的
JS引擎线程
- 也被称为JS内核,负责处理JS脚本程序
事件触发线程
- 归属于浏览器而不是JS引擎,控制事件循环
- 对应事件符合条件被触发时,会将它排队到待处理队列的队尾,等待JS引擎的处理
定时器触发线程
- setTimeout、setInterval所在线程
- 注意,W3C在HTML标准中规定,规定要求setTimeout中低于4ms的时间间隔算为4ms。
异步http请求线程
- XMLHttpRequest连接后的线程请求
- 当检测到状态变更时,如果设置有回调函数,异步线程就产生状态变更,将回调放到事件队列中,再由JS引擎运行。