在字节跳动青训营听了一门叫做客户端容器的课程,是由讲师何坦宏讲的这一门课程,然后我对这门课程进行了一次认真的听讲,对它做了一下笔记。架构演变:1、单进程架构:扩展性低;所有模块运行在同一个进程里,数据没有隔离。稳定性低,三方插件某个tab页面js脚本问题导致浏览器崩溃。流畅度卡顿,所有页面运行在统一进程中,开启多个页面时明显卡顿。2、多进程架构,各进程分配独立的内存区域,有些进程功能较大,耦合度高。安全性高。3、面向服务架构,做好了沙箱隔离,安全性高。浏览器主进程:主要负责页面展示逻辑,用户交互,子进程管理;GPU进程:进行UI绘制;网络进程:网络服务进程,负责网络资源加载;标签页(渲染进程):控制tab内的所有内容插件进程。多线程架构:内部是多线程实现,主要负责页面渲染,脚本执行,事件处理,网络请求等。渲染优化:1、GPU加速:颜色渐变,使用透明度,每个像素点的值都改变。transform做动画用GPU做加速。新建图层也是耗时的操作。设置while change 告诉浏览器这个元素会被GPU加速,放在新建图层里。2、减少回流和重绘。可见不可见用visible… table现代框架不太会用。3、离屏渲染。开辟一段内存,将需要渲染的内容渲染好,等需要在显示。canvas画点和线,用离屏渲染好一些。4、懒加载:在缓存里取,减少时间。感觉这节课老师讲的课程挺细节的,讲的很是不错,认真听的话肯定是能听懂的,不过要认真听哦。还有就是,自己在听完课以后也要私下去更深层次的学习一下这些内容。