浏览器运行机制

浏览器的运行模式:

1.浏览器是一个多进程,多线程的运行机制,一个进程可能含有多个线程;

2.浏览器包含有一下几个基本进程:

Browser进程:

(浏览器主进程),负责下载网络文件,将renderner得到崔仔内存中的位图渲染到浏览器的页面上。

Gui进程:

负责3D图的绘制,当页面使用了硬件加速(什么是硬件加速??)才会使用该线程,否则,直接交由 Browser进程执行,将位图渲染到页面

renderner进程:

renderner进程包含有多个线程,也叫浏览器的内核,负责执行脚本(js,html,css...),绘 图,事件触发,监听查询等

renderner进程分析:

1.js引擎线程:

js线程是一个单线程运行的,与下面的GUI线程互斥,两者不能同时运行。负责执行js脚本。

2.GUI线程:

用于解析html结构生成dom树,css结构,生成cssdom数,布局layout,绘制paint。

3.定时触发线程

对应于setTimeout,setInterval API,由该线程来计时,当计时结束,将事件对应的回调函数放入任务队列中

当setTimeout的定时的时间小于4ms,一律按4ms来算

4.http请求线程

每有一个http请求就开一个该线程

当检测到状态变更的话,就会产生一个状态变更事件,如果该状态变更事件对应有回调函数的话,则放入任务队列中

5.任务队列轮询线程

用于轮询监听任务队列,以知道任务队列是否为空

render树:由dom树和css树结合生成的。页面的绘制和布局都是依据renderner树生成

浏览器渲染流程总结:

解析html,生成DOM树------>解析css文件,生成cssDOM树------->将DOM树和cssDOM树合并,生成render树(渲染树)------->浏览器依据render树布局和绘图,生成各个元素的位图------->GUI线程将得到的位图提交给Brower进程,Brower进程将位图整合,并渲染到页面上。

最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容