前端性能优化——代码优化

68 阅读1分钟

JS 开销和如何缩短解析时间

JS 开销主要有下载、解析编译和执行 解决方案:

  • code splitting,代码拆分,按需加载
  • tree shaking,代码减重 从解析、执行来看,还可以:
  • 减少主线程工作量
    • 避免长任务
    • 避免超过 1kb 的行间脚本
    • 使用 rAF 和 rIC 进行时间调度
  • 渐进式启动
    • 可见不可交互 VS 最小可交互资源集

image.png

配合 V8 有效优化代码

V8 编译原理

image.png

V8 优化机制

  • 脚本流
  • 字节码缓存
  • 懒解析

函数优化

  • 懒解析 VS 饥饿解析

对象优化

  • 以相同顺序初始化对象成员,避免隐藏类的调整
  • 实例化后避免添加新属性
  • 尽量使用 Array 代替 array-like 对象

HTML 优化

  • 减少 iframes 的使用
  • 压缩空白符
  • 避免节点深层级嵌套
  • 避免 table 布局
  • 删除注释
  • css & js 尽量使用外链
  • 删除元素默认属性

借助工具:html-minifier,webpack 已经集成了

CSS 对性能的影响

  • 降低 CSS 对渲染的阻塞
  • 利用 GPU 进行动画的完成
  • 使用 contain:layoutfont-display 属性