前端性能优化 24 条建议(2020)(四)

简介: 前端性能优化 24 条建议(2020)(四)

20. 不要覆盖原生方法

无论你的 JavaScript 代码如何优化,都比不上原生方法。因为原生方法是用低级语言写的(C/C++),并且被编译成机器码,成为浏览器的一部分。当原生方法可用时,尽量使用它们,特别是数学运算和 DOM 操作。

21. 降低 CSS 选择器的复杂性

(1). 浏览器读取选择器,遵循的原则是从选择器的右边到左边读取。

看个示例

#block .text p {
    color: red;
}
  1. 查找所有 P 元素。
  2. 查找结果 1 中的元素是否有类名为 text 的父元素
  3. 查找结果 2 中的元素是否有 id 为 block 的父元素

(2). CSS 选择器优先级

内联 > ID选择器 > 类选择器 > 标签选择器

根据以上两个信息可以得出结论。

  1. 选择器越短越好。
  2. 尽量使用高优先级的选择器,例如 ID 和类选择器。
  3. 避免使用通配符 *。

最后要说一句,据我查找的资料所得,CSS 选择器没有优化的必要,因为最慢和慢快的选择器性能差别非常小。

参考资料:

22. 使用 flexbox 而不是较早的布局模型

在早期的 CSS 布局方式中我们能对元素实行绝对定位、相对定位或浮动定位。而现在,我们有了新的布局方式 flexbox,它比起早期的布局方式来说有个优势,那就是性能比较好。

下面的截图显示了在 1300 个框上使用浮动的布局开销:

然后我们用 flexbox 来重现这个例子:

现在,对于相同数量的元素和相同的视觉外观,布局的时间要少得多(本例中为分别 3.5 毫秒和 14 毫秒)。

不过 flexbox 兼容性还是有点问题,不是所有浏览器都支持它,所以要谨慎使用。

各浏览器兼容性:

  • Chrome 29+
  • Firefox 28+
  • Internet Explorer 11
  • Opera 17+
  • Safari 6.1+ (prefixed with -webkit-)
  • Android 4.4+
  • iOS 7.1+ (prefixed with -webkit-)

参考资料:

23. 使用 transform 和 opacity 属性更改来实现动画

在 CSS 中,transforms 和 opacity 这两个属性更改不会触发重排与重绘,它们是可以由合成器(composite)单独处理的属性。

参考资料:

24. 合理使用规则,避免过度优化

性能优化主要分为两类:

  1. 加载时优化
  2. 运行时优化

上述 23 条建议中,属于加载时优化的是前面 10 条建议,属于运行时优化的是后面 13 条建议。通常来说,没有必要 23 条性能优化规则都用上,根据网站用户群体来做针对性的调整是最好的,节省精力,节省时间。

在解决问题之前,得先找出问题,否则无从下手。所以在做性能优化之前,最好先调查一下网站的加载性能和运行性能。

检查加载性能

一个网站加载性能如何主要看白屏时间和首屏时间。

  • 白屏时间:指从输入网址,到页面开始显示内容的时间。
  • 首屏时间:指从输入网址,到页面完全渲染的时间。

将以下脚本放在 </head> 前面就能获取白屏时间。

<script>
  new Date() - performance.timing.navigationStart
  // 通过 domLoading 和 navigationStart 也可以
  performance.timing.domLoading - performance.timing.navigationStart
</script>

window.onload 事件里执行 new Date() - performance.timing.navigationStart 即可获取首屏时间。

检查运行性能

配合 chrome 的开发者工具,我们可以查看网站在运行时的性能。

打开网站,按 F12 选择 performance,点击左上角的灰色圆点,变成红色就代表开始记录了。这时可以模仿用户使用网站,在使用完毕后,点击 stop,然后你就能看到网站运行期间的性能报告。如果有红色的块,代表有掉帧的情况;如果是绿色,则代表 FPS 很好。performance 的具体使用方法请用搜索引擎搜索一下,毕竟篇幅有限。

通过检查加载和运行性能,相信你对网站性能已经有了大概了解。所以这时候要做的事情,就是使用上述 23 条建议尽情地去优化你的网站,加油!

参考资料:

更多文章,欢迎关注

目录
相关文章
|
4月前
|
缓存 前端开发 JavaScript
前端性能优化的方式
前端性能优化的方式
48 1
|
1月前
|
前端开发 JavaScript UED
探究前端性能优化策略
在当今互联网高速发展的时代,前端性能优化显得尤为重要。本文将从减少HTTP请求、压缩资源、使用CDN加速等多个方面探讨前端性能优化的策略,帮助开发者有效提升网站的加载速度和用户体验。
|
2月前
|
缓存 前端开发 JavaScript
深入理解前端性能优化方法
【2月更文挑战第1天】前端性能优化是提升用户体验、提高网站速度和效率的关键步骤。本文将深入探讨前端性能优化的各种方法,包括资源压缩与合并、懒加载、缓存策略、代码优化等,并提供实际案例和建议,帮助开发者更好地优化前端性能。
|
3月前
|
前端开发 搜索推荐 JavaScript
探析单页应用(SPA)与多页应用(MPA):从技术角度选择合适的应用形式
随着Web应用的快速发展,单页应用(SPA)和多页应用(MPA)成为了开发者们在构建Web应用时常遇到的两种选择。本文将从技术角度出发,深入比较单页应用和多页应用的特点和优势,帮助读者更好地选择适合自己项目的应用形式。
20 0
|
4月前
|
前端开发
【前端性能优化方法与实战】
【前端性能优化方法与实战】
|
8月前
|
缓存 前端开发 JavaScript
前端性能优化 24 条建议(2020)(二)
前端性能优化 24 条建议(2020)(二)
36 0
|
8月前
|
缓存 网络协议 前端开发
前端性能优化 24 条建议(2020)(一)
前端性能优化 24 条建议(2020)
78 0
|
8月前
|
存储 Web App开发 前端开发
前端性能优化 24 条建议(2020)(三)
前端性能优化 24 条建议(2020)(三)
51 0
|
9月前
|
缓存 运维 算法
三十一、 套路篇:磁盘 I/O 性能优化的几个思路
三十一、 套路篇:磁盘 I/O 性能优化的几个思路
257 0
三十一、 套路篇:磁盘 I/O 性能优化的几个思路
|
前端开发
前端学习案例2-记忆函数和性能优化1
前端学习案例2-记忆函数和性能优化1
42 0
前端学习案例2-记忆函数和性能优化1

热门文章

最新文章