客户端容器 | 青训营笔记

54 阅读2分钟

1. 客户端容器

(1)浏览器架构

  • 浏览器架构演进

1. 单进程架构:所有模块运行在同一个进程里,包含网络,插件,javascript运行环境等;

2. 多进程架构:主进程,网络进程,渲染进程,GPU进程,插件进程;

3. 面向服务架构:将原来的UI,数据库,文件,设备,网络等,作为一个独立的基础服务

(2)渲染进程

  • 常见的浏览器内核

Trident,Gecko,Webkit,Blink,Edge,Trident+Webkit(Blink);

多线程架构:内部是多线程实现,主要负责页面渲染,脚本执行,事件处理,网络请求等;

  • 多线程工作流程:

1.网络线程负责加载网页资源

2.JS引擎解析JS脚本并且执行

3.JS解析引擎空闲时,渲染线程立即工作

4.用户交互,定时器操作等产生回调函数放入任务队列中

5.事件线程进行事件循环,将队列里的任务取出交给JS引擎执行

(3)Chrome运行原理

  • 输入处理

1. 用户Url框输入内容后,UI线程回判断输入的是一个URL地址呢,还是一个query查询条件

2. 如果是URL,直接请求站点资源

3. 如果是query,将输入发送给搜索引擎

  • 开始导航

1. 当用户按下回车,UI线程通知网络线程发起一个网络请求,来获取站点内容

2. 请求过程中,tab处于loading状态

  • 读取响应

  • 寻找渲染进程

  • 资源加载

(4)跨端容器

为什么被需要?

1. 开发成本,效率

2. 一致性体验

3. 前端开发生态

  • Webview

1. webview,即网页视图,用于加载网页Url,并展示其内容的控件

2. 可以内嵌在移动端app内,实现前端的混合开发,大多数混合框架都是基于webview的二次开发;比如lonic,Cordova;

使用Webview的优势:

1. 一次性开发,处处使用,学习成本低

2. 随时发布,即时更新,不用下载安装包

3. 移动设备性能不断提升,性能有保障

  • 4. 通过JSBridge和原生系统交互,实现复杂功能