浏览器架构
单进程架构、多进程架构、面向服务架构
多进程架构
包含主进程、GPU进程、渲染进程、插件进程、网络进程等...
其中渲染进程是需要重点掌握的,负责html、css等页面的渲染。
常见浏览器
FireFox内核Gecko跨平台,JS引擎为SpiderMonkey。
Chrome浏览器的内核是Blink,JS引擎为V8,目前公认最好的JS引擎。
渲染进程
渲染进程又可以分为几个线程,其中比较重要的是js引擎线程和GUI渲染线程。
js引擎和渲染引擎的工作流程
1、解析执行JS
2、XML解析生成渲染树,显示在屏幕上
3、桥接方式通信
渲染进程-多线程工作
一道面试题
由于js事件轮询和同步机制,控制台输出为20、20、30
chrome运行原理
简单来说就是浏览器主进程先处理输入,读取资源以后,若是需要渲染进程,便寻找渲染进程。 在渲染进程中加载子资源,生成DOM树、SCSS树、构建渲染树,布局完以后便是绘制、光栅化并放入显存中,发送IPC给主进程。
运行速度优化
从耗时来看,scripting的耗时是最长的,所以js代码分包充分利用浏览器并行的功能可以降低耗时。
渲染优化:
1、GPU加速
2、减少回流、重绘
3、离屏渲染
4、懒加载
将子资源提前加载到本地,在滚动等需要时再直接取出来
JS优化
1、防止内存泄露 2、合理使用闭包 ...
跨端容器
常用webview、Android、IOS、国产Android
WebView优势:一次开发,处处使用,学习成本低
课程总结