前端性能

偶然看到微信公众号的一篇文章,炫技,从 12.67s 到 1.06s 的网站性能优化实战,自己在这个文章里看到了许多陌生的词汇,也get到许多新的工具(利器),虽然在看的当下没办法一一去体验,但是打算简略记录下来,以后不断的去尝试,用自己做的一些公司内部项目,进行相关的评价与改进。

日常积累

  1. 网站性能(前端er)性能指标:白屏时间、首屏时间、整页时间、DNS时间、CPU占用率;
  2. 用户等待一个页面的时间(超过多少秒会关闭)?
  3. 资源打包压缩:js压缩、HTML压缩、提取css并压缩
  4. 重排(reflow),渲染层内的元素布局发生修改,都会导致页面重新排列,比如窗口的尺寸发生变化、删除或添加DOM元素,修改了影响元素盒子大小的CSS属性(诸如:width、height、padding)。重绘(repaint):绘制,即渲染上色,所有对元素的视觉表现属性的修改,都会引发重绘。重排是由CPU处理的,而重绘是由GPU处理的,CPU的处理效率远不及GPU,并且重排一定会引发重绘,而重绘不一定会引发重排。所以在性能优化工作中,我们更应当着重减少重排的发生。
  5. 图片在渲染前指定大小
  6. 对页面中可能发生大量重排重绘的元素单独触发渲染层,使用GPU分担CPU压力(要慎重,渲染层过多对GPU也是不必要的压力)
  7. 将没用的元素设为不可见:visibility: hidden,以减小重绘的压力
  8. 压缩DOM的深度,一个渲染层内不要有过深的子元素,少用DOM完成页面样式,多使用伪元素或者box-shadow取代。

陌生词汇

  1. navigation timing监测指标图
  2. 布局是由CPU完成的,绘制是有GPU完成的
  3. 把容易触发重排重绘的元素单独触发渲染层,让它与那些“静态”元素隔离,让GPU分担更多的渲染工作(硬件加速)
  4. 重排与重绘
  5. CSS属性读写分离
  6. Dom元素离线更新

新利器

  1. 网络传输性能检测工具——Page Speed(Chrome插件,比Network更详细)
  2. 详细列出了哪些CSS属性在不同的渲染引擎中是否会触发重排或重绘——csstriggers.com
文章架构-前端性能

你可能感兴趣的:(前端性能)