当前位置: 首页 > 科技观察

前端问题——浏览器有五种进程

时间:2023-03-13 14:27:18 科技观察

浏览器已经从单进程浏览器阶段发展到多进程浏览器阶段,那么多进程浏览器进程有哪些呢?一起来看看吧。1、打开浏览器后只有一个浏览器进程,主要负责界面显示,用户交互,子进程关闭。此外,它还将提供存储等功能。2、渲染进程的主要功能是页面渲染、脚本执行、事件处理等。默认情况下,Chrome会为每个Tab创建一个渲染进程(注意:出于安全考虑,渲染进程以沙盒模式运行)。渲染进程由多线程组成,包括以下几个:(1)GUI渲染线程主要负责渲染浏览器界面,解析HTML、CSS,构建DOM树和RenderObject树,布局绘制等。该线程当界面需要重新绘制或重新排列时执行。(2)JS引擎线程主要负责JS代码的解析和执行。(注意:JS引擎线程和GUI渲染线程是互斥的,当JS引擎线程执行时,GUI线程会被挂起,GUI更新会保存在一个队列中,当JS引擎空闲时立即执行,所以JS执行的时候过程,会造成页面渲染不连贯,导致页面渲染加载阻塞)(3)事件触发线程,用于控制事件循环。当js引擎执行代码时,将相应的任务(如Ajax任务、鼠标点击...)交给事件线程,当事件被触发时,事件线程会将事件添加到待处理事件队列的尾部,等待js引擎处理。(4)定时触发线程setInterval和setTimeout所在线程,浏览器定时计数器不被JavaScript引擎统计,由单独的线程定时触发。(W3C在HTML标准中规定setTimeout中小于4ms的时间间隔按4ms计算)(5)异步http请求线程用于处理请求XMLHttpRequest,连接后通过浏览器开启新的线程请求.3.GPU进程GPU进程只有一个。使用GPU的初衷是为了达到3DCSS的效果。随着网页和ChromeUI界面选择使用GPU进行绘制,GPU已经成为浏览器的普遍需求。最后,Chrome还在其多进程架构中引入了GPU进程。.4、只有一个网络进程,主要负责加载页面的网络资源。5.插件进程每一种插件都对应一个进程,主要负责插件的运行。因为插件容易崩溃,所以需要通过插件进程进行隔离,保证插件进程的崩溃不会对浏览器和页面造成影响。