并发模型
- 帮助app保持响应并且根据用户设备能力和网络速度降级调整;
- 可以同时处理几个状态更新,就像是不同分支可以由不同团队处理;
可中断的渲染(interruptible rendering
不会阻止更新输入框文本;一边让浏览器绘制更新到输入框中,一边渲染列表的更新到内存中;当下面渲染完成更新DOM,将变更映射到屏幕上;
每次更新在一个分支上;
阻塞式渲染(blocking rendering
因为每次渲染开始(创建新DOM和浏览器布局计算)就不会被中断;这个叫做阻塞式渲染;
案例:输入框输入,实时查看筛选列表问题?
- 一般我们会使用debounce,防抖/节流来优化,但是一旦渲染开始就不会被中断;
故意的加载序列
浏览器调度函数
- requestAnimationFrame:帧数控制调用
- requestIdleCallback:闲时调用
- web worker:多线程调用
- intersecionObserver: 进入可视区域调用