当前位置: 首页 > news >正文

【前端面试】React深度学习(上)

web app 的瓶颈

web app,有两类场景会制约快速响应:

大计算量、设备性能不足使页面掉帧=> CPU 的瓶颈

发送网络请求后,由于需要等待数据返回 => IO 的瓶颈

React是如何解决?

主流浏览器刷新频率为 60Hz,即每(1000ms / 60Hz)16.6ms 浏览器刷新一次。

JS 可以操作 DOM,GUI渲染线程与JS线程互斥、JS 脚本执行和浏览器布局、绘制并非同时执行。

在每 16.6ms 时间内,需要完成如下工作:

JS脚本执行 ----- 样式布局 ----- 样式绘制

当 JS 执行时间过长,超出了 16.6ms,样式布局和样式绘制就会受影响。

如何解决这2个问题?

将同步的更新变为可中断的异步更新。

每一帧的时间中,预留一些时间给 JS 线程,React利用这部分时间更新组件(可以看到,在源码中,预留的初始时间是 5ms)。

当预留的时间


http://www.mrgr.cn/news/10633.html

相关文章:

  • 贪心算法---分发糖果
  • C# 匿名函数 delegate(参数...){ }
  • 《5G 与区块链融合:智能城市服务质量的飞跃》
  • 用命令行工具(nmcli)模仿ubuntu21图形界面的热点功能
  • 【学习笔记】STM32F407探索者HAL库开发(二)STM32F4最小系统设计
  • SpringBoot依赖之Spring Data Redis 实现地理坐标(Geospatial)
  • HTTP无状态是什么意思?Cookie又是什么?
  • 接口自动化测试面试题目详解
  • Apache Dubbo关键点分析
  • UE5学习笔记18-使用FABRIK确定骨骼的左手位置
  • 开放式耳机是什么意思?开放式耳机推荐
  • 交换排序(冒泡排序和快速排序)
  • C++学习笔记----5、重用之设计(一)---- 重用的哲学
  • Redis计数器:数字的秘密
  • 企业产品网络安全日志8月26日-威胁感知建设,三方漏洞升级
  • 【C++】—— 内存管理
  • 动态规划-地下城游戏
  • Elasticsearch之DSL查询语法
  • 高级java每日一道面试题-2024年8月21日-框架篇[Spring篇]-使用IOC容器应该注意哪些?
  • Qt:玩转QPainter序列一