浏览器运行原理

2020-08-06  本文已影响0人  kimberle

一、浏览器结构(简化)

1. 用户界面
展示除标签页窗口之外的其他用户界面内容
2. 浏览器引擎
用于在用户界面和渲染引擎之间传递数据
3. 渲染引擎
负责渲染用户请求的页面内容

二、多进程浏览器(chrome为例)

可大致拆分为
1. 浏览器进程
2. 缓存进程
3. 网络进程
4. 渲染器进程
浏览器会在默认情况为每个标签页创建一个进程

三、在地址栏输入内容时浏览器内部变化

  1. 输入网址时
  1. 输入关键字时

重排和重绘

重排:改变一个元素的尺寸位置属性时,会重新计算样式、布局、绘制及以后的所有流程
重绘:改变某个元素的颜色属性时触发样式计算和绘制
为什么要避免重绘和重排?:都在主线程上运行,会与JS抢占执行时间。当频繁发生重排和重绘时,JS运行时间较长的话,有可能会阻塞主线程,导致掉帧(前一帧绘制完成后,在这一帧剩余时间开始运行js,若运行到了下一帧的时间,则影响下一帧的绘制)
优化手段:

  1. 可以通过requestAnimationFrame(),将JS任务分成更小的任务块分到每一帧,在每一帧时间用完前暂停JS执行交还主线程
  2. 使用transform动画:不在主线程执行,而在合成器线程和栅格线程执行。不经过样式计算和布局绘制,节省运算时间
上一篇 下一篇

猜你喜欢

热点阅读